This can happen in a number of ways.....
The worst case is that you've got some spyware on your machine that's watching what you're up to. Download the following to check if anything that bad is going on:
www.lavasoft.com/single/trialpay.php
Another bad possibility is that your email has been hacked, so it might be worth changing it's password.
Thankfully both of those are not the most likely issue, but do check them.
What is possibly the most likely thing to have happened is that some company has shared your details with advertisers. This is either because they're a bad company or because you didn't click the little box telling them not to use your details for advertising, or didn't unclick the little box which gave them permission. Watch carefully what happens when you give your details out.
As a general rule of thumb also never put your email address anywhere on the internet where people can read it, a spammer will find it.
Also try to never open spam emails and if you can set your email program to never download images unless you tell it to do so. Downloading images can tell the spammer that the email address is real and that someone has read the message. Similarly never reply to a spam email asking to be taken off of the list, it too alerts the spammer that the address is real.
So there's many things it could be.
Check your machine is clean and be very careful with your details online. Unfortunately now that your details are out there there's not a whole lot you can do other than to get a new email address and ignore the old spammed one.