I use Askimet and Bad Behavior. The combination prevents SPAM incredibly well - maybe too well, it turns out. I got an angry email from one reader this morning who denounced me for denying all of his comments. I never saw one of them. He said they had a lot of links in them, which I suspect was the problem.
My blog has a scientific bent, so it's important for readers to be able to post links to studies in their comments.
Is there a SPAM plugin that will stop SPAM but allow comments with links, or at least allow me to moderate them? I never even saw the comments the reader posted.