A good idea is creating a free web based email account with no real personal information.
Then you can give out that email address when some site really pushes you for personal information. You retrieve the information/links that they send you on that email address, and then never use it again – or use it only for similar purposes, so that your real personal email account is not polluted with junk.
There is a nice tutorial on how to use KMail with antispam software, at http://kmail.kde.org/tools.html#antispam
By using an address of the form realID+string@realdomain.tld, you can create unique email addresses. Mail servers discard anything that is after a “+” sign, therefore you can enter the domain and date information there.
So, if I register with RedHat, and it's 15th of November 2003, and my real email address is apapad@cmu.edu, I will give them the address apapad+redhat15nov03@cmu.edu, which is simply an alias to my real email address. I will still get the emails from Red Hat, but if they sell my information to a spammer, and I get a “Meet Britney Spears” message on that particular address, I'll know that it was them who sold me out.