Sometimes when you give your email address when buying something or register with a new site, they relay the info to associate businesses. It's not ethical as far as I'm concerned, but the answer to this problem is sometimes to open the email and click on one of the 1 or 2 unsubscribe links at the bottom of the page. Sometimes the most obvious unsubscribe link won't work. Look for the other. If they are legitimate businesses, there will always be at least 1 unsubscribe link.
If you find no such link or if you think they are harmful sites, don't do this, just mark them as spam.
If I am being overwhelmed with unsolicited email, I will sometimes just mark everything as spam, but I have to be good and angry, because I usually have no idea if maybe these businesses have tried to follow the letter of the law or not.
Edit: Be careful when registering to Do Not Email lists. Some of them are scams themselves. Check them out first, do a search. http://www.ehow.com/info_8050005_there-do-not-email-list.html This page will suggest legitimate sites, but search THEM first!
Edit again: The filters idea is a good one. My own email uses them. Just be aware that sometimes filters will accidentally filter stuff you want to keep. I have even found stuff in the spam folder where it didn't belong. As long as you glance in the folders to see what's there it's ok, just right click the email and select "this is not spam".