The 580 is better than all of them but comes at a cost. The 570 and the 6970 are very close to each other and mainly comes down to personal preference.
if your budget is big enough go for the 1.5gb for max gaming performance, or if you like me "need/want" the best.
the 570 or 6950 will be good enough for most gamers, so the best is not always needed.
amd's gpus are generally cheaper, but kick out alittle more heat than nvidia's offerings.