In my experience as a Drupal site admin and webmaster, I've found only one way to absolutely prevent spam on two of my sites: require payment of a a subscription fee before allowing users to post new content.
As you can imagine, this has stopped spammers in their tracks. No spammer will ever pay a dime to post spam, it seems. Of course, new content postings have dropped significantly, as well!
But, on the sites I'm talking about, the content is mainly classified ads - and I can assure you, running a site featuring free classified ads is a sure-fire way to attract human spammers: cell phones, cameras, electronics, and more! I run about ten Drupal-based sites, and one site has many orders of magnitude greater traffic than the two sites described here, and I've never had one spammer attack the high-traffic site - it seems that the classified ads topic is a magnet for human spammers.
So, after months of trying to deal with this crap, I finally decided to charge a modest subscription fee ($5 USD per year) if a user wishes to create classified ads. I came to this decision because I had reached the point where I was ready to remove the free classified ads service entirely - since the ads were free, it wasn't worth the trouble to maintain the ads section of the site, I figured that it was worth trying the subscription-based classified ads model before throwing in the towel. Response has been slow but growing - at least some people value the service enough to pay $5 to place an unlimited number of ads.
Note: the one thing I never tried was the Akismet module - since the two sites in question were commercial sites (but they don't bring in much revenue) I decided it wasn't worth paying the required 'commercial site' fees.
