Bit late to this party, but here’s my take. I use Askimet and it works well at catching the spam comments. The only problem is that if you get a lot of spam (I’m currently getting about 30 a day) then you need to be sure to check the ‘pending moderation’ list regularly because if it gets too long then trying to report-and-delete them all at once will fail/crash/timeout. I took a week’s holiday recently, and came back to over 250 spam comments waiting in Askimet; the only solution wass to go through and mark them manually, and delete in batches of about 15-30. A PITA.
There are two anti-spam techniques that I would dearly love to see built natively into the EE comment form:
1. Solvable puzzle: ask the poster to answer a question such as “is fire hot or cold” or “what is 5+4”. Humans will get it, bots are less likely to.
2. Honeypot field: a field that must be left blank in order for the form to successfully be submitted. (bots will tend to fill out all fields/inputs in a form). The field can be hidden from normal users by some combination of CSS/javascript (and, ideally, an explanation given stating that they should not fill the field in).
If either the question is not answered or the honeypot is filled in, then the form should not submit, but ideally should ‘fail silently’.
EE2? Pretty please?