Ambos enfoques tienen sus ventajas y desventajas. Devolver JSON o XML desde el servidor y usar javascript templating para convertir a HTML es más RESTful y tiene la ventaja de separar los datos y la presentación y permitir que múltiples clientes lo usen fácilmente. La desventaja es que es mucho más trabajo hacer en javascript.
Por otro lado, si el servidor devuelve HTML, todo lo que tiene que hacer es inyectarlo en algún lugar del DOM. Lamentablemente, en este caso, el marcado y los datos se combinan y sería más difícil para otros clientes extraer datos sin formatear (imagine, por ejemplo, una aplicación de escritorio o móvil que desee consumir servicios de su sitio).
En mi humilde opinión, si el único consumidor es su sitio, entonces devolver HTML sería el mejor enfoque.
Si el servidor envía HTML con mayor fidelidad, combina lo que tiene en el servidor con lo que tiene en ejecución en el navegador. Si desea hacer más de una cosa con ese resultado, incluso en la misma página, entonces tener el JSON será una gran ganancia. Dicho de otra manera, si está generando HTML dinámico en el servidor, entonces ha agregado otro lugar para mirar cuando necesita solucionar un problema de diseño y Firebug no será tan útil porque tendrá que cambiar lógica del lado del servidor solo para corregir problemas de presentación. – Suppressingfire