Cita: SELECT DISTINCT * FROM Resp,Tema WHERE Tema.Id = Resp.IdTema order by Resp.IdResp Desc
Me saca repetido los titulos tantas veces como respuestas tenga, ademas de no sacarme los temas sin respuestas.
Pues claro que pone el titulo en cada respuesta, estas haciendo un producto cartesiano, es normal y correcto. También el hecho que omita los registros que no coincidan con el Where que has definido.
Para que te saque las que no tienen respuesa, creo yo, deberías utilizar la union de una subconsulta:
SELECT DISTINCT Tema.* FROM Resp,Tema WHERE Tema.Id = Resp.IdTema order by Resp.IdResp Desc UNION
SELECT DISTINCT * FROM Tema WHERE Id NOT IN (Select Id from Resp)
No se si esto de adapte a tus necesidades, pero la idea es esa.