A GTX 470 vs 5870 isn't really a fair comparision. the 5870 will outperform a GTX470 in almost every case. The GTX470 competes with the 5850 which is usually outperforms.
If the GTX470 and 5870 are your two choices, I would go with the 5870. However, it also costs more. Is it worth the extra cost? That is up to you. The GTX470 is a great card, even though it uses alot more power and generates a good bit of heat.
If you were comparing the GTX470 vs 5850, I think I'd go the GTX470 route. But that is still preference because they can both be overclocked quite a bit.
The HD5870 is actually only about 10% faster on average at stock speeds. When you take overclocking into account then I suspect the GTX 470 is actually the faster card. A good OC on these card when you bump up the core voltage is 1000mhz for the HD5870 and 800mhz for the GTX 470. The HD5870 starts at 850mhz and the GTX 470 starts at 607mhz so those translate into a core speed increase of 18% for the HD5870 and 32% for the GTX 470 which should make up for the initial performance difference between the two cards. The GTX 470 does use more power and give off more heat but considering the $100 price difference I would go for the GTX 470 myself.
If you are considering a two card setup in the future then another factor is that SLI scales much better than crossfire.