One aspect of this debate which can make a significant difference in the amount of SPAM you receive is the method one uses to access their emails.
While more and more people use online accounts, such as gmail or Yahoo, to access their emails, many people (such as myself) still use a third-party email client to download and read their mail offline.
In order to prevent SPAM, I use a fabulous program called Mailwasher Pro.
The program acts similar to a firewall, and requires an initial learning period. You have a "Friends List" and a "Black List" and over time, kit learns who is who. The program shows you all your mail while it's still on the server, giving you the option to selectively accept or delete any email. It automatically views any new sender as "Possible Spam" until you tell it otherwise.
There's a free version; however the pro version has many more features, as you might expect.
Anyway -- after using Mailwasher Pro for the past six years or so, I almost NEVER get any Spam anymore. And I mean I may see less than ten SPAM emails over the course of a year.
On the other hand -- My Yahoo Spambox receives about eight-to-ten emails on a daily basis.
While we can certainly complain about and blame the people who are responsible for generating the SPAM, I would submit that it's also the user's responsibility to take a few pro-active steps on their own behalf.
You might say, "Why should I have to download, install, pay for, and spend my valuable time dealing with this when I'm not the one responsible?"
But, if you stop to think about it, we're alos not responsible for the viruses, malware, crapware, etc which intrudes on our computing life every day -- and yet we spend our time and money taking the time to ensure we are protected against those intrusions...so why not do the same for SPAM - which, in my humble pinion, is much easier to control for the home user.