Te hago la propuesta y te la explico (seguramente haya otras).
Cita: SELECT t.id, t.titulo, t1.fechapost, r.autor, r.texto
FROM thread t
INNER JOIN respuestas r ON t.id = r.refidthread
INNER JOIN (
SELECT refidthread, max( fecha ) fechapost
FROM `respuestas`
GROUP BY refidthread
ORDER BY max( fecha ) DESC
LIMIT 10
)t1 ON ( t.id = t1.refidthread
AND t1.fechapost = r.fecha )
ORDER BY t1.fechapost DESC
Lo primero es averiguar las fechas más recientes de los thread. Para eso agrupo por refidthread de la tabla que he llamado respuestas (los posts), sacando el máximo valor de fecha de cada post, ordenando descendentemente por esa fecha y limitando a 10.
SELECT refidthread, max( fecha ) fechapost
FROM `respuestas`
GROUP BY refidthread
ORDER BY max( fecha ) DESC
LIMIT 10
Luego mediante inner join de las dos tablas y también con ese resultado, busco todos los datos de thread y respuestas, relacionando por el id del thread y por la fecha (recuerda que es la máxima para cada thread). Cruza las tablas y me trae los datos de las que coinciden con lo sacado en la consulta primera.