In modern usage, the "h" is not silent in words like "historical" and "hotel", so it should be "a". You only need "an" when the next word starts with a vowel sound because the consonant is silent - e.g. "an honest man" or "an honourable man".
Some older people would still say, "an 'otel" or "an 'istorical building".