I've had some decent luck as of late getting rid of spam (running the same software as here)
First, added a non-standard question to the user signup
(ie: do you like beer? yes / no ). If they don't answer, or say no, then they don't get registered.
Then I removed the website field from the user signup. If someone posts a website variable during signup (from one of those spam bot programs) then you know it's not a legit visitor. Users can add a website after-the-fact when they edit their profile.
preventing guest posts is #1, but I know you're having problems there.
I added some program that will disregard any post if it's made within xxx time. So if a bot posts in 0.3 seconds, it just ignores it.
anyhoo... There's some good reading and add-ons at: http://www.phpbb.com/phpBB/viewtopic.php?t=393503
