For sheer usefulness, Mail-SpamAssassin can take on nearly any other distribution with one arm tied behind its back. Some of its default rules or scores bug me. Sometimes it causes me grief at work because I have to deal with quirks. Sometimes its configuration is hard to understand. None of this matters, because it saves me from seeing over 30,000 pieces of spam each month. Thanks, SpamAssassin!
Spamassassin has rightly gained its faim. Since everybody knows it. there's not much to say about it.
However, it's not perfect. The newest plague of W32.Gibe/Swem has shown that it's no run-and-forget solution. It has serious problems with large amount of Mails, even when using the spamd/spamc combo. As a rule of thumb: If you can filter out a large amount of mails with plain procmail rules, better do so and not let SA inspect these mails.
A good thing is that more and more mail-servers are tagging Mails with this module. That way there is less need to run it locally and enjoy the luxury of getting already tagged mails.
I use Mail::SpamAssassin to filter my spam. It works incredibly well. It rarely ever misfiles anything, and even worked very well in the beginning with little training. I use it with Mail::Audit for a complete perl-based mail filtering solution.