I like the techniques described in this article:
http://www.smartfile.com/blog/captchas-dont-work-how-to-trick-spam-bots-with-a-smarter-honey-pot/
I have used similar methods on sites with much success. On one site that received thousands of spam submissions per day, we reduced it to 3 or 4 per day!
In my mind there are 2 major categories of bots, those with JS enabled and those without. A good solution provides options to deal with both. Of course there is a third that can't be stopped, the human spam bots!