The best method I have used is to ask a question on registration. Like 'what is the color on the right' and a red box, or 'how many fingers on one hand'. The downside is you normally have to manually code it in. If a human signs up to your site and starts spamming you just have to deal with them manually. If you get a lot of manual spammers, do prevent them from posting links until they have at least 20 posts. Usually discourages the most of them.