These are great questions.
There are many tools to compare flights for comparing international flights. Kayak, Google Flights and SkyScanner to name a few. I usually book through the airline at that point. The only exception is if I find a better option on a travel website that isn't offered through the airline directly. I have bought tickets for a combination of Delta, Adria and Croatian Airlines flights this way using Orbitz that wasn't available through Delta's website.
If you're planning to take a side trip elsewhere, make sure to check out booking an open-jaw flight, so you don't have to make your way back to London. This is my favorite insider tip on maximizing the value of your roundtrip ticket. For example, last October I spent most of my trip in London, but actually flew into Amsterdam and home from Paris.
I've seen advertisements to upgrade to BA World Traveller Plus at the airport for around $300, but the issue with that for me is that window and aisle seats in World Traveller Plus are typically all reserved well in advance these days. At check in, it's usually just middle seats left, at least for my Seattle-London flight. For me, it's more important to pay for the seat reservation ahead in either World Traveller or World Traveller Plus and get an aisle or ideally an exit row. At 14 days before departure it is possible to reserve exit row seating on BA. If you already purchased a seat, you only pay the difference to change to the exit row.
As far as when to buy, that's a hotly debated topic! Advice from my personal experience is ASAP, however, again lots of opinions on this point.
Good luck, and prepare for lots of responses to your questions!