So far I have used Mail as may main private email client, picking up email from a OsX Server installation, where I use the built-in SpamAssassin spamfiltering on the server (I have blogged about how to do this previously - including how to keep on training the filters).
The server has been set up to "mark" all email identified as SPAM in this manner :

i.e. by adding "*** JUNK MAIL ***" in from on the Subject line. And then on the Mail (client) side there is a rule that moves any emails starting with this in the Subject line to a "Junk" mail folder.
This has worked well so far - but with the advent of a iPhone picking up emails from the same email account this does not work so well any more, as the iPhone get's hold of the email before the Mail rule has ben run, and I can therefore see all the JUNK emails.