My recipe for getting rid of comment spam once and for all:

  1. Install WordPress 1.2.1 or later.
  2. Install ImageAuth hack
  3. Go to Options Tab.

    Under Discussion ensure:

    1. Email me whenever: Anyone posts a comment is checked.
    2. Email me whenever: A comment is approved or declined is unchecked.
    3. Hold a comment in the queue if it contains more than 2 links. Ensure that the value is two or three, not more.
    4. Ensure that the text area titled "When a comment contains any of these words in its content, name, URI, email, or IP, hold it in the moderation queue: (Separate multiple words with new lines.) Common spam words." is filled with the Common spam words.
  4. Rename wp-comments-post.php to something different (non-obvious and ends with .php like die-spammers.php) and change wherever it is referenced in code (three files actually).
  5. Occassionally you should check Edit:Comments and Comments:Awaiting moderation entries.

My success rate with the above recipe is 100% so far.

Note:

  1. Do not use Spam Karma or other spam filters in conjunction. Personally I feel Spam Karma gives you lots of bad karma :)
  2. The above steps are complementary. I recommend that you take the time to implement all of them.