Try this website:
http://www.hostelworld.com/
Don't be put off by the fact that it seems to be only about hostels, rather than hotels or B&Bs. Simply enter your dates and click on 'Find Hostels'. Then use the filters, down the left-hand side of the page, to select only 'B&Bs' and 'Hotels'.
Looking through the results I've just found (for some random dates in January, and taking location into account), the following seem to be well worth considering:
Lord Kensington Hotel (Earls Court), £34.50 pppn, en-suite.
Elephant Lodge (Southwark), £34.50 pppn, shared bathroom.
Tony's House Hotel (Hyde Park), £32.00 pppn, en suite.
Enrico Hotel (Victoria), £34.50 pppn, en suite (or £26.50 pppn, shared bathroom).
Hotel Earls Court (Earls Court, obviously!), £38.50 pppn, en suite.
London House Hotel (Bayswater), £42.00 or £49.50 ppp, en suite.
Caswell Hotel (Victoria) £33.50 or £38.50 pppn, en suite (£28.50 or £33.50 pppn, shared bathroom).
Royal Hyde Park Hotel (Bayswater), £34.50 pppn, en suite.
Barry House (Hyde Park), £47.50 or £50.00 pppn, en suite.
Airways Hotel (Victoria), £50.00 pppn, en suite.
Lidos Hotel (Victoria), £39.50 pppn, en suite.
London Town Hotel (Earls Court), £37.50 pppn.
Surtees (Victoria), £35.00 (shared bathrooom) or £40.00 (en suite) pppn.
Sara Hotel (Kensington), £32.50 pppn, en suite.
MacDonald Hotel (Kings Cross), £40.00 or £42.50 pppn, en suite.
Astoria Hotel (Paddington), £26.00 pppn, en suite.
Kensington West (Knightsbridge), £60.00 pppn, en suite.
Out of that lot, I'd definitely put Surtees at the top of my list. It's incredibly popular and consisently well-reviewed.
I've recommended the Hostel World website to lots of people and they've found some great budget hotels through it. (I stayed in a superb little hotel in central Madrid, with air-conditioning, wi-fi and and an impeccable standard of cleanliness, booked through that website, for just €22 per night for a single room).