Hola:
Pues, sí, con innerHTML puedes incluír toda una estructura compleja, como una tabla enterita... aunque no es estándar...
De forma estándar se añaden elementos creados con createElement para etiquetas y createTextNode para texto plano, y se añade al documento con appendChild o insertBefore... pero innerHTML parece que es aceptado por todos los navegadores y funciona Ok.
Saludos