The cheapest is the Clarity card from Halifax that Stahlrost mentioned if you don't mind getting a credit card. If you want cash to take with you, it's normally best to order currency online and pick it up somewhere as you get better rates online. We now always go to Debenhams as although it's not somewhere you would associate with cheap travel money rates (at least I didn't at first) it has consistently the best rates year after year if you buy them online compared to all other high street places. Just fill in the form online and then collect them in store. Order them just before you can go collect them as you get the online rate of when you pick them up, not of when you order them. If you use the link Orsenkaht posted it will tell you where the cheapest rate is at any given time: http://travelmoney.moneysavingexpert.com/
Given the wrong places you always seem to manage to put a full stop, I'd be a bit wary if I were you as far as exchange rates are concerned. Don't agree anything in writing. Cos your £1.00 might really be 10p by the time you've typed it.
Never buy currency outside the country you are visiting other than a minimal amount to cover the first day. Served me well travelling round.
The best rate you will get will be from a bank transfer Think travelfx are usually the highest rate using this option.