1. Answer a simple math question (e.g. "What do you get if you multiply 5 by 1?").
2. Hidden form field that is supposed to stay empty.
3. Spam word filter ("cialis", "levitra", etc.).
After I put this in place a couple of years ago, the daily number of spam comments my site got dropped from 200 to zero. I was worried that it wouldn't last, but to this day I've only had to delete about five spam comments in total - and they were posted in registered user accounts.