"A letter" means letters in general. It means, "If someone (not necessarily me) sends a letter to London, how long will it take to get there?"
"This letter" means a specific letter (like Japanese これ[kore], I think). "The letter that I am talking about (or pointing at or holding in my hand right now) - how long will this specific letter take to get to London?"
When we're talking about a specific letter, the verb "to do" needs to be in the future tense ('will'), because the letter hasn't yet arrived in London.
And as quant points out, you need to use 'in London' rather than 'at London'. Because London is a big place and the letter will be within it.
So it should be:
How long will this letter take to arrive in London?
if I want to know the travel time for this specific letter that I am holding in my hand right now, or
How long does it take a letter to reach London?
if I want to know the travel time for letters in general, not any particular letter, just a hypothetical letter that anyone might send.
How long does it take a letter to arrive in London?
is also fine: 'to arrive in' and 'to reach' mean the same thing in this context.
If I may be so bold, I would say neither is correct.
Here is what I hear speakers say.
I have been waiting for her to be back for a long time.
I have been waiting for her to be back for quite a while.
In this context, quite
and long
have the same meaning and would be redundant next to each other.
I hope this helps.
Best Answer
All of the above are correct. You can't say "takes long time", though. When time is a mass noun, like in the first sentence, you can drop the article: "this process takes time" (or "this process takes money" or "this process takes guts"). When you say "a long time", you are basically using time as a count noun, which means you need the article.
You can read up on count nouns on Wikipedia. The relevant piece is reproduced here:
Replace "fun" with "time" in those last examples and you have the same idea.