If 5870 is cheaper than GTX470, then it's a no brainer decision.
5850 is 725mhz, 1440 shaders
5870 is 850mhz, 1600 shaders
The 2 cards have the same ROPs and only 8 difference in texture units. Therefore at about 950mhz on the GPU, 5850 will become similar in speed.
5850s also overclock extremely well:
http://www.xbitlabs.com/articles/video/display/gpu-power-consumption-2010_4.html#sect0
The only problem is beyond 975mhz and 1.20V on the GPU, the power consumption is unreasonable.
But if you aren't going to overclock, get the 5870.