It turns out that if you have a GMail address named johndoe@gmail.com, email to johndoe+amazon@gmail.com and johndoe+ebay@gmail.com will also reach you. So follow these directions and you can see whether and by whom your gmail email has been sold on to spammers. If it has been you can simply create a filter that removes any email sent to the new johndoe+ebay@gmail.com address. Of course smart spammers would remove the + part by hand. Also note that a large-ish proportion of email signup forms don’t let you use an address with a “+” in it.
P.S. You may not know that Gmail also (at last!) allows you to create groups in your contacts lists like every other email application in existence (ie you can set up “friends” as an address in your gmail book which sends to John Doe and Jane Doe). It took them far too long to implement this feature…