Image Verification is the way to go
Total newbie to this forum here. I'm actually a webmaster, and I had the same problem with the comment and email forms on my page. Image verificaiton (the pics of random numbers and letters) is the way to go. When I made this account, about five minutes ago, this forum used image verification, so the PHP generated image is already there. It won't be too much extra work to make it mandatory for all posts.
Also, it's really easy to add backgrounds to the images, which this forum doesn't currently have when you register. If any admins read this it'll be something like what I have below. Basically, I have 20 different background images that I use, and each one is named background(number).jpeg and are placed in the same directory as my PHP file. The $bgNUM variable pics a number between 1 and 20 randomly, and then the function imagecreatefromjpeg (built into PHP 4 and higher) places the random number at the end of the jpg name and makes a new jpeg from it. Then you can have your random letters and stuff put ontop of it.
// choose one of four background images
$bgNum = rand(1, 20);
// create an image object using the chosen background
$image = imagecreatefromjpeg("background$bgNum.jpg");
Anyway, many of the bigtime blogs and forums use it, and it doesn't interfere very much.
Another solution is to collect IPs from users, and store it in the database with their information. Then, if you have an offending user, you can easily block their IP with PHP. Just redirect them, or don't let them post. The major problem with this is that you could potentially block hundreds of other users who share the same IP or the offender could be IP spoofing.