0844 and 0871 are revenue share numbers introduced in 2000.
0845 and 0870 have a much longer history (especially if you include their earlier 0345, 0645, 0990 and 0541 versions).
0845 and 0844 look similar but are different types of number. 0870 and 0871 look similar but are different types of number. Ofcom messed up here. They should have used 083 and 086 or some other number range for the new numbers to differentiate them from 0845 and 0870.
Since 2009, the 0870 numbers are "inclusive" in call plans. If you have free minutes to 01 and 02 from a landline, then 0870 are included too - otherwise you still pay for the call. 0870 used to be "revenue share" with the call price capped at the equivalent of a national call. Ofcom removed revenue share in 2009 and added the "inclusive" requirement. Mobile operators still charge for these calls.
0845 are also revenue share. They used to be capped at the price of a local call. Since 2004, no provider offers a cheaper rate for local calls, there's just one national or "geographic" rate. "Local rate" no longer exists. Further, most landline providers allow all 01 and 02 calls free within inclusive minutes.
BT thought that Ofcom were about to remove revenue share from 0845 so also made those calls inclusive in 2009. 0845 is still revenue share so BT has to subsidise those calls. Their mistake!
0844 has always been revenue share. These are NEVER usable within inclusive minutes. This is also true for 0871, 0843, and 0872. From a landline, the price varies according to the number called. A little known fact is that when you pay BT for a call to one of these numbers they pass all of the money on. The call price is the same as the revenue share. BT are not allowed to make a profit on these calls. Other providers are allowed to make a profit and do charge more for them.
Mobile operators charge 30 to 45p per min to call 084 and 087 numbers. They make a large profit on these calls.
Rules are changing in the next few months. 0870 will return to revenue share. 0845 and 0870 will no longer be inclusive from BT landlines. This will happen in early 2013.
That sounds like a bad thing, but there's more.
Businesses using 084 and 087 numbers for customer service and other similar functions will have to move to the equivalent 034 and 037 numbers. 03 numbers cost the same as 01 and 02 numbers and are usuable in inclusive minutes from both landlines and mobiles alike. This is forced by the Consumer Rights Directive.
Businesses that continue to use 084 and 087 numbers will have to declare the revenue share amount that is included in the price of calls to their number. This will be forced by the new "unbundled tariffs" that Ofcom propose.
The end result is that 084 and 087 will clearly be seen to be revenue share numbers and 03 will be "inclusive" numbers that are effectively "free" for most callers and the same price as 01 and 02 for those that have to pay (i.e. from mobiles on pay as you go and landlines with no inclusive-calls bundle).
The revenue share amounts are listed here:
http://www.ofcom.org.uk/static/numbering/s8_code.txt
See also
http://en.wikipedia.org/wiki/Non-geographic_telephone_numbers_in_the_United_Kingdom#History_of_non-geographic_prefixes
The move to 03 numbers is significant. It means that mobile users will benefit too. Previous changes to 0870 and the like have only benefitted landline users.