Why is 'an' used with 'an honour'?
Because the 'h' is silent in honour (or, in America, honor).
Sometimes 'an' is used even if the 'h' is aspirated, as in "This was an historic occasion."
As I understand it, an 'An' should be used before words that sound like they start with a vowel.
This can lead to ambiguity like 'SQL database'. This could either be written as 'an SQL database' or 'a SQL database' depending upon whether you pronounce SQL as 'S-Q-L' or 'sequel'.