SpamAssassin (in portage) works decently. I set my install up as a daemon, and a systemwide procmail checks all messages first for viruses, then for spam. From there, it gets to the users procmail file (all IMAP users have one to at least move spam to a spam folder). Lastly, once a week I run a scanner SpamAssassin comes with to check every users spam folder. It does this to see what the users have put in there that it might have mised. The program will miss some initially, but over time it gets better. I am already seeing my scores shifting after a few days, like all the bounce message from here have drifted from a 0.8 initially to a 0.5 now.