Bem, se você tivesse usado tabelas InnoDB, você poderia configurar um exclusão em cascata com chaves estrangeiras que faria tudo automaticamente. Mas se você tiver algum motivo para usar o MyISAM, basta usar um multiple -table DELETE :
DELETE FROM boards, topics, messages
USING boards INNER JOIN topics INNER JOIN messages
WHERE boards.boardid = $boardid
AND topics.boardid = boards.boardid
AND messages.boardid = boards.boardid;