Como protejo meu fórum contra spam?

Eu tenho um fórum em um site que domino, que recebe uma dose diária de spam pron. Atualmente, apago o spam e bloqueio o IP. Mas isso não funciona muito bem. A lista de IPs bloqueados está crescendo rapidamente, mas também o número de postagens de spam no fórum.

O fórum é inteiramente meu próprio código. É construído em PHP e MySQL.

Quais são algumas maneiras concretas de interromper o spam?

Editar O que eu esqueci de mencionar é que o fórum precisa estar aberto para usuários não registrados postarem. Como um comentário no blog.

questionAnswers(13)

yourAnswerToTheQuestion