Who is your email provider? I am with yahoo and I don't get too much junk mail. I know AOL is bad about junk mail. Yahoo has a bulk folder that filters out junk pretty well. I believe they can get your email address from what sites you visit and stuff -- I know my website has a counter on it that shows the host of the last person's email account and they most visited hosts.
Most ISP's now have what are called spam filters. You can use them to block the download of spam or filter the spam out of your inbox. In addition most mail clients have filters on them as well. You can use those from your end to automatically move the email to the trash box. The problem though is you end up still downloading the messages with mail client filters.
A few other sugguestions, is to get a "dummy" email account through one of the free email providers. Use that account's email for all the registrations you do online. That will help to cut down on the spam to your primary account.
Another is to be sure to read the privacy policy. Unless you just have to for business or personal reasons, i've always recommended boycotting sites that sell or distribute contact information to third parties. Also when you registar be sure you do not have checked "recieve further email" unless you want it.
People can get your email from an assorted number of places. I think in some cases it can be as simple as you've left a message on someone's guestbook and another Users comes back in and "steals" the address of that guestbook.
__________________
A hiney bird is a bird that flies in perfectly executed, concentric circles until it eventually flies up its own behind and poof! disappears forever....
-Ken Harrelson
Download an anti-spyware program like Spy Sweeper or Ad-Aware, and get rid of all your cookies. Lots of times, spam is a result of spyware that's on your computer.