spamへの現実的に有効な対処方法は、いまの技術だと次の2種類だけだと私は思っています。

  1. 登録されているひとからしか受信しない(ホワイトリスト方式)
  2. ベイジアンフィルタ

振り分けルールで「この単語が含まれている」「この送信者から」「件名にこんな文字が含まれてる」というのを指定してspamっぽいのをふりわけるのは、やったことがある方ならわかるとおもいますが、いたちごっこになります。きりがありません。
ホワイトリスト方式はspamをほぼ100%カットできますが、欠点がいくつかあります。なにもかも登録するのが大変なこと。通販サイトなどのお知らせメールは事前にアドレスがわからなかったり、変更されたりする場合がること。自分のメールアドレスを登録してしまうと、spamがきてしまうこと(宛先アドレスとFromを同じにしてるspamってけっこうあるんですよね)。などです。
で、ベイジアンフィルタです。ベイジアンフィルタとは「ベイズの定理」の考え方をつかったspamフイルタです。簡単にいうと「過去のspamメールに含まれていた単語が多くて、過去のまっとうなメールに含まれていた単語が少ないメールは多分spamである」という理屈に基づいてます。直感的にも、これでspamが捕獲できそうだって納得できますよね?
最初のうちはこれはspam、これはspamじゃないって教えてあげるトレーニングが必要ですが、まもなくいい感じでspamを撃墜してくれるようになります。
ベイジアンフィルタは強力なのに、意外に商業的には普及していない気がします。私が使ったことがあるもので、おすすめは次の3つです。

SpamSieve

MacOS X専用です。Apple Mail, GyazMailなどに対応しています。わたしはずっと使っていますが、満足できるspam検出率です(感覚的には、月に2通程度のspam見逃し)。サイトは英語ですがちゃんと日本語対応してます。シェアウェア。学習結果をみると日本語単語の区切り方怪しい(というか区切ってない?)んですが、なぜか高い撃墜率です。

POPFile

Windowsで使えるベイジアンフィルタはいくつかありますが、わたしは最近POPFileにたどり着きました。オープンソースですよ。メールのproxyとして動作するタイプです。SpamSieveに比べると日本語単語の区切り方もまっとうなようです(ちょっと切り刻みすぎる傾向があるようですが)。

Thunderbird

ほかのふたつはspamフィルタ専業ですが、Thunderbirdはベイジアンフィルタが組み込まれているメールアプリです。わたしはちょっと使ってみただけなのですが、最初からけっこういい感じでspamをはじいてくれる印象です。組み込みのフィルタなので学習させるのも簡単です。