I really like the comment plugin where you have to solve a CAPTCHA to post a comment.
The CAPTCHA comment plugin I use has reduced comment spam by.. about 100%. I'm thinking about adding a CAPTCHA for signing up blogs too.
I have a big problem "spam"-blogs. However, I don't see IP-based blocking as something that would solve anything at all. They are as good as useless.
I actually think "by e-mail address" would be better than by IP, but that too is kind of worthless. Sorry to say so, but the only real solution seems to be to _manually_ check blogs after 1 week and manually remove pure spam blogs..
The reason I don't like IP blocks is that many ISPs give out dynamic IP-adresses. Your a dissident who want to blog about human rights violations in your country, but now you can't, because someone else who happens to share your ISP posted a spam blog and you're banned. Banning a /24 or /16 is the only thing that would make sense if you get like 20 different IPs signing spam-blogs from one /24, and as mentioned, that's kind of bad.
By e-mail is also sad for many reasons, you can't block everyone using @gmail.com just because 10 people form gmail behaved bad.
I use the sitewide RSS feed, which makes it very easy to read new posts and see which are spam. If you nuke spam-blogs after 30 minutes every time then eventually the spammers will just give up.
Making it harder to sign up for a new blog may be a partial solution, but keep in mind that you do not want to make it so hard that the poor tortured people in countries like Norway can't sign up and tell the world how the Norwegian government pretends it's a democracy while torturing anyone who speaks out against it.