I didn't see a specific answer to this, so I'm bringing it up here.
Yes, I know that each bitcoin can be divided to 8 decimal places, so that even with only 21 million of them, there is enough range go from 1 unit to 2 quadrillion (if I've done my math right).
The problem is that bitcoins themselves seem too coarse: At the current exchange rate (about $14.50 per bitcoin), 21 million bitcoins comes to about $305 million USD. If the "market cap" of bitcoins expands to 10 times that, so that bitcoins are over $145 each, then a $1.00 transaction would be on the order of BTC 0.007, a one cent transaction is about BTC 0.00007 (or 7e-5) and it becomes cumbersome to deal with 3 to 5 decimal places.
It's not so much a technical objection, but a "human factors" one. This is part of the reason why many stocks split when their price goes over $100.00 -- to make the stock seem affordable.
So, to rephrase the question, how was the limit of 21 million BTC chosen?