Summary
I doubt if there is anyone out there who doesn't get any spam ! The common approach to spam involves filtering the messages based on their content, even though this is hard to do reliably and either allows spam through, or worse, silently deletes genuine mail. Filtering is at best 'unreliable' and is a continuous arms race between the spam filtering developers, and the spammers who adjust to work around the filtering.
I will describe a method I use both at home and work. A different approach which is highly effective, but most importantly, will never silently delete any mail - if there are false positives then the sender will get a bounce message. It involves only a few simple settings in Postfix (or any well configurable MTA) and the addition of a Greylisting package.