You could look at this entire subject from two perspectives: preventing getting spam in your Inbox, or preventing the spammers from getting your Email address in the first place.
Keep in mind, one of the biggest sources of Email addresses the spammers get is from the WHOIS records of our domain names. I believe there's actually a law here in the US that mandates that we who lease domain names for a year or more at a time are required to post accurate contact information in the domain record, so technically (and legally) we're not supposed to put spoof information in there, which
guarantees that we'll get spam.
It's pretty much a way of life for us that use the Internet: if you have an Email account, sooner or later, you'll start getting spam. And changing your address every 6 months only serves to confuse your friends and family.
So for me, my vote is to prevent spam showing up in my Inbox. To accomplish that, I spend about 15 minutes every week training SpamAssassin what I consider spam or not. Over 88k spam messages and 51k non-spam messages later, SA does an *incredible* job at filtering spam for me. And I don't just hold that position because I wrote the trainer script that LP has been gracious enough to let me post for everyone else to use.

I hold that position because spammers aren't going to quit doing what they do, and I'd rather have SpamAssassin analyze my mail because I've invested a few minutes per week teaching it what to filter for me.
And if I notice an unusually-high quantity of spam to a non-existent address (since I use catch-all addresses all the time), I simply set a filter for it to drop the message. So when I set up an address like
ian-united.com@mydomain.com and started getting spam, I knew that someone either hacked United Airline's database and got everyone's Email address, or that UA sold the addresses to someone else. Either way, 30 seconds in CPanel and I don't have to worry about it any more, without having to worry that I've impacted something else (like getting a notice that my domain name is expiring, etc) by changing my whole Email address for everybody on a frequent basis.
The first page had some good ideas about not putting your Email address on your web site, or generating it via a script to make a graphic, or to use javascript to generate it on the fly. These ideas will certainly help deter spammers from learning your Email address in the first place, but even those aren't foolproof.
So again, my opinion is that 'preventing spam' means preventing spam messages from showing up in my Inbox, and my tool of choice for that is SpamAssassin.
And that's all I have to say about that
