Yo lo haría así.
Código SQL:
Ver originalSELECT posts.id,com.tot
FROM posts
LEFT JOIN(
SELECT xcom.idpost,COUNT(xcom.id)AS tot
FROM comments xcom
GROUP BY xcom.idpost
)AS com ON(com.idpost=posts.id)
ORDER BY com.tot DESC
LIMIT 0,5
Si hay algún error de campo creo que sería fácil modificarlo, no?
por cierto, este post corresponde al subforo MYSQL
Saludos.