Depends how much you're changing, the Post Office is usually pretty good - but we don't take cash abroad, we just take it out of the hole in the wall when we get there.
I been getting mine from Thomas Cook lately as the rate is quite good. I order on-line then pick up and pay cash in store that way my bank doesn't get to charge me for it and the rate is often better than just going in the store and buying. The cash card they do is quite good as well. Just like using a debit card and you can take money out of the ATMs with them too. Saves carrying lots of cash about, they will give you 2 cards if you want so if you lose 1 you can contact them and cancel it and use the other. Saves waiting for a new one to arrive.
We do the same as boxtops. We have been going to Spain every year for many years and I have found that the best way is to have just enough Euros to get a taxi when we are there and then go to an ATM or bank. It's not worth buying Euros here because you won't get as good a rate and then you pay commission on top.
I use ATMs purly for the ease of it, but be careful which bank you use. As an example, withdrawing €600 during a two-week holiday in Spain will cost you around £25 more if doing by Lloyds rather than Nationwide.
//the Post Office is usually pretty good// What!!! I don't think you have tried very hard boxtops, they always give lousy rates. If you are only changing a few pounds, it doesn't matter too much, but for larger sums a few percentage points can make a considerable difference.
The best rates in London I have found are from those Indian boys in the kiosks opposite Paddington station. I have heard that Marks and Spencer are quite good, though I haven't used them.
I'd go along with using overseas ATMs to get the best rate.
However if you want to get your euros in the UK, it's worth noting that quite a few places offer a better rate if you order online (and then pick them up in store), rather than just walking through the door.