Você pode usar apenas uma tabela, que inclui um campo ParentID. Se o registro não tiver valor, é um comentário, caso contrário, é uma resposta (para um comentário ou uma resposta).
Você pode consultar o registro ParentID do registro (inspecione é ParentID) para ver se esta resposta é um comentário ou uma resposta.
Editar :O acima é uma solução bastante prática. No entanto, para ir com uma versão normalizada, ainda mantenha a tabela Comments (sem ParentID) e crie uma tabela ReplyTo que tenha um CommentID e um ResponseID, ambos os IDs dos registros na tabela Comments.
Usando essa ideia, o sql a seguir mostrará os comentários e a 'resposta' para cada comentário para cada resposta que tiver um comentário:
select c.comment, r.comment as reply
from comment as c, comment as r, replyto as rt
where c.ID = rt.CommentID
and r.ID = rt.ReplyID
Como Dimitrii aponta, ele não exibirá comentários sem respostas - para isso, você precisa de uma consulta de junção externa (não testou a sintaxe):
SELECT c.comment, r.comment as reply,
from Comment c
left outer join Comment r on c.id = r.id
left outer join replyto rt on rt.responseid = r.id