In S02E10 of Game of Thrones, we see the 20 men from Greyjoy army knock out Theon Greyjoy, also stabbing Luwin. And then they leave the castle gagging Theon. The Stark's ally forces were on their way to take back Winterfell. So who put the castle on fire and why?
Late Season 3 spoilers:
Winterfell was torched by Ramsay Snow, the bastard son of Roose Bolton. He made a secret deal with Theon's men that in return for them leaving Winterfell and giving up Theon he would let them leave in peace. So they knocked him out (after giving a rather stirring speech), handed him over to Ramsay and left. Afterwards, Ramsay sacked the castle and set it on fire, all as part of his father's plans to overthrow the Starks.
It was not really the Greyjoys. It was the bastard of Roose Bolton, Ramsay and his lot. Ramsay later on chops off Theon's bits and names him Reek.