I was going to suggest http://www.saynoto0870.com/ as well.
Click on the link near the top, "Search to find an alternative number" ... you can then either enter the company name, or the phone number and it'll check its data base to see if there are alternative, cheaper numbers that you can phone :)
forums.moneysavingexpert.com › ... › Home Phones
The cost of calling 0844 numbers from a BT landline varies from ½p/minute to 5p/minute depending on the number's 5th, 6th and 7th digits.