Over the years, roughly 8 million answers have been proposed for this chestnut. [link to many: here.] Some are fine, some are not. The very best one, though, comes from Mis-Nagid, OBM, who gave us his answer last year. It is republished here for the purpose of making cartoon-like question marks appear over your heads:
The very first Chanukah was a delayed Sukkot. Sukkot traditionally required going to the Temple, but on the correct date for Sukkot, the Temple was still under Seleucid control, so it was not celebrated properly. The Maccabees cleverly scheduled the Temple's grand reopening on the anniversary of its sacking, and celebrated Sukkot like it's supposed to be... That is... [t]he reason Chanukah is eight days (instead of seven) is because it was a delayed Sukkot, which has eight days.