What isp do you use? Some are worse than others for letting spam in (I believe hotmail is bad). Another factor can be how often and where you give out your email address on the web. And finally, when you sign up for anything look for the "small print" box, usually right at the end, which says something like "we will allow your details to be used by carefully selected companies..blah, blah" - always tick the box to say "Do NOT do this".
As palinka says 'always tick the box to say "Do NOT do this"' good advice, except they won't take a blind bit of notice as the odds are they will get paid for handing over your e-mail address to other companies which in turn increases your amount of SPAM.