I'm usually happy enough just to use my debit card abroad, so I rarely buy euros. However the Post Office usually has reasonably good rates for the fairly small amounts that I might need. (If, say, I found that M&S was offering slightly better rates - as it often does - by the time I'd spent about £7 or £8 to drive into Ipswich and to pay for parking, I'd be no better off than simply calling into my local post office).
If you intend to buy a relatively large amount of euros though, the best rate will depend upon
(a) the actual amount that you want to exchange ;
(b) how soon you want your money ; and
(c) the way that you want to receive your money. (The best rates of all are often with those firms that don't have a High Street presence, where you order your money online and it's delivered to your door).
The calculator here will show you the best options available:
https://travelmoney.moneysavingexpert.com/