If you use Outlook, try the SpamBayes plugin.
http://spambayes.sourceforge.net/
Bayesian learning allows the program to distinguish between spam mails and non-spam mail. You point it at a folder of spam and say, "Learn this," and it learns what's good and what's bad. It's very reliable for me - never thrown out a legit mail. It can even tell between spam and newsletters from, say, Amazon, which I allow to reach me. Also it's open-source.