Bueno depende de la plataforma para la que quieres hacer la plantilla, si es para blogger, es puro HTML y CSS convertido en xml. Para Wordpress, debes de saber PHP para poder crear un theme, y así puedo ir diciéndote diferentes formas de hacer plantillas, más bien deberías de especificar en donde planeas usar la plantilla, hay muchos sitios web de venta de plantillas HTML, CSS y Js, por ejemplo ya mencionaron, envato, de las más conocidas, en lo personal, antes cuando me quería dedicar a esto de las webs, bajaba plantillas gratis y analizaba la estructura, y trataba de replicarla, buscando también pará que servía ese fragmento de código.