I'm afraid I can't recommend any high-end Michelin-starred restaurant since I haven't been.
I would recommend Strada near City Hall since it has great views of Tower Bridge at night. It's a chain restaurant that offers good Italian food (like Osso Buco and gnocchi) and ambience. Another Italian chain restaurant, Pizza Express, is much better and more authentic than what you would get with Pizza Hut or Domino's. Despite the "express" in the name, it is a proper sit-down restaurant and not fast food. Stockpot in Soho offers good affordable British fare, although the place itself is a bit small and cramp (cozy, I suppose). For Indian food, Masala Zone is quite good and they have a handful of locations around the city, although I am sure there are better ones out there. Although away from the tourist trail, the East End offers better (and cheaper) Asian restaurants like Vietnamese, Thai, etc. and are often family-run. Also, street food in London is good, especially in the markets (particularly Borough market). I've had ostrich burgers, roast duck burgers, paella, this French dish called Raclette (?), okonomiyaki, etc. for decent price.
As for pubs, I like this pub (which the name escapes me) by Marylebone station in terms of ambience. It has that Victorian feel to it. I also sometimes go to Montagu Pike in Charing Cross road near Covent Garden. They have this big projector that shows live football/soccer games (the best seats are upstairs and overlooking the ground floor below). There are lots of good pubs and bars in Shoreditch (East End) and I particularly like Barrio East for the decor and feel. Cocktails are a bit expensive though, like around £8 or 9 for a f****ng mojito. There's also a few chain bars like All Bar One and Be At One. Although one of the best places to get a drink is at that balcony in Royal Festival Hall in South Bank overlooking the river. It's just nice to have a jug of Pimm's shared with friends on a warm summer evening overlooking the Thames.