I came across the article from ITsecurity, The Top Ten Ways to Eliminate Spam from Your Inbox.  I think that this is a good article, it's quite comprehensive and the information is accurate (and it's not very long, another bonus).  Check it out if you're so inclined.

There is one point that I think requires a comment from me: 

Do It Yourself Filters
If you tend to the tech-y side, you can write your own command-line email filters in a scripting language like Perl or Python, both of which have superior regex (regular expression) pattern matching abilties. The idea is as follows:

  1. Download. Write a script to grab your email (copies) off of POP or IMAP email servers.
  2. Profile. Save IP address info for each message and build a frequency table for keywords. If you save the data for long-term profiling, keep spam info in a separate database.
  3. Context analysis. Do some words in the message raise flags? Compare their frequency counts against other words. This process will need to be manual, until you build up long-term profiles. If it's spam, delete the original copy off your mail server.

There's nothing wrong with writing your own filters if you are so inclined, but you'll be updating it every single day.  Make sure you weigh carefully the decision about how much of your time you want to spend writing spam rules.  Even the professionals get tired of it.

One tip: if you do decide to write your own spam regular expressions, make sure you use bounds if you're matching short words.