I use combination of hardware and software. First I have a e-mail/spam/anti-virus firewall from
Barracuda Networks co-lo'd at my host, which protects all my domains and pretty much kills 99.9% of crap. Then I use
Junk-Out for Outlook which takes care of anything that sneaks through the firewall. As a result I get maybe 5 spam messages daily. Been using this combo for years.