If you have an intelligent spam filter like the one built into Thunderbird or Spam Assassin, you need to train it right.
The most common problem I’ve seen is taht people only tell the spam filter about their spam, but not about the good mails (the ‘ham’). In Mozilla, you do this by selecting all the good emails and saying “Mark this Message as Not Junk”. This is important, nay, vital information for the filter.
I did this with Spam Assassin a while back, and any time I get a spam now, I feed it back into the filter. The results are pretty impressive: My spam filter now catches 99.2% of all the spam. I’m tracking this and making a diagram from it. You can see the improvement over the untrained filter I had two months ago.
That’s pretty darn good. I get in excess of 100 spams a day, which isn’t as much as some of my friends get, but still bad enough.