We use SpamBotCheck on this site to test for standard Joomla spam registrations. I'm not going to say it catches everything.. but it gets more than 99% of all crap accounts:
extensions.joomla.org/extensions/access-...pam-protection/14027
That extension will check some online databases for known 'bad' IP and email addresses.
For reference, we have over 1000 spam registration attempts a day, so >99% is darn good, but that <1% can still be annoying.
I hope that helps,
Alex