Unless you are TOTALLY desperate, don't buy BA Miles unless their is a promo on.
Remember that, except for Amex bookings, BA now offers 'part miles part cash' for most reward flights, and the equivalent cost per mile is either 0.7p or 1p (depending on ba.com's mood at the time) - far cheaper than buying miles in advance.
It is also often cheaper to buy hotel points and convert them to BA during promo periods.
Amex Plat card holders can buy 10k MR points a year for 1.5p each and convert them 1:1 to BA, so 1.5p per mile. Again, cheaper than buying direct.