I use a combination of several filters which works on probably 98% of all the spam I get. Just one filter isn't enough, but I think the one that catches the most is the one that says "if my address isn't in the To: field, and if this mail didn't come from someone I know, then it's spam."
Other things that work are looking for your e-mail address or parts of it in the Subject: field and the From: field, looking for several HTML tags in the Message Body (not all html spam has "HTML" in it), looking for words like viagra, mortgage, or any other overly common words that you don't see in legitimate mails you receive, or looking for word pairs like "loan" and "interest" or "free" and "brochure".
Good luck