The easiest way I have found is simply to use your credit card abroad, and avoid cash. It is easy to find cards that do not charge a foreign currency conversion fee. Capital One, for instance, typically has no foreign transaction fees on any of their cards.
If you really need cold hard cash in a foreign currency, the best way is to withdraw it from an ATM after you arrive in that country.
Here is a survey of several banks and what their ATM & debit transaction fees are for foreign transactions. I use Alliant Credit Union and can confirm they charge only the 1% Visa network fee for foreign ATM withdrawals, which is pretty good.
Edited to add:
When I traveled to London last year, I didn't withdraw any cash until several days into my trip. London is a rather card-friendly city, at least for tourists, it seems.
Here are some more recommendations from
Rick Steves (the goofy PBS travel guy)