There are a few things that I do on my WordPress blogs that make a huge difference.
First, make sure that you're using Akismet (the plugin comes with WordPress by default, but you can reinstall it if you removed it). You must set it up before using it though - it's not configured or active immediately out of the box.
Second, install WP-reCAPTCHA. I have found this to be by far the best captcha system, and it integrates perfectly into your WordPress comments and registration forms.
Lastly, you might consider adding a list of words in your WordPress comments settings that, if found in a comment, will automatically mark that comment as spam. For example, any words involving certain pharmaceuticals might be good candidates for this list.
Hope that helps! Message me if you would like to discuss further.