Originally Posted by B747-437B
Not quite correct.
The first letter of ICAO codes (outside the US/Canada) designates the continental region (E = Western Europe, V = South Asia, etc...), the second designates the countrywise/regional region (G = Great Britain, D = Deutschland, I = Northern India, etc..), and the last two letters designate the local aerodrome (AM = Amsterdam, DP = Delhi Palam, etc..).
Hence EHAM = Western Europe, Holland, Amsterdam; VIDP = South Asia, Northern India, Delhi Palam; etc...
B747-437B, that seems logical, but none of the UK codes' last two letters designate the local aerodrome. I can't think why LL would be LHR, BD - EDI or NWI is SH - it's not even releated to other names (e.g. EDI - Turnhouse). Might be used in some countries, but not in all of them. Could this have been left to local aviation authorities to decide how to code the aerodromes?