Read about powertune:
http://www.tomshardware.com/reviews/radeon-hd-6970-radeon-hd-6950-cayman,2818-5.html
Use a good overclocking utility like msi afterburner.
I have a non-reference Asus directcu 6970. I had to use Asus GPU tweak since afterburner didn't support voltage tweaks on my particular card. I noticed that by bumping the voltage to 1.2v I could get 980mhz on the core. Unfortunately I had to manually set the fan way too loud for my tastes @60% to keep temps under 90 at that voltage. I didn't go any further because I prefer my computer to not sound like a vacuum cleaner.
I benched using Furmark (be careful with Furmark, it really does make your GPU hot) and 3dMark11. And games of course. Remember that you can often get through benches just fine and end up with crashes when actually playing in games, so testing your overclock can be a bit time consuming.
I settled on 950mhz at default voltage which peaks at 81c in my hot, wood-stove heated basement with fan on auto that doesn't exceed 45%.
With regards to memory overclocking. From what I've heard the error correction is very robust on vram and you might find what appears to be a 'stable' vram overclock but benchmark performance is actually lower. My memory didn't clock past 1400mhz without decreased performance. So basically bump it up and watch your benchmarks.
With regards to heat - I don't like my 6970 running at higher than 85c. I know that they can run up to 100c before 'shutting themselves down' but I believe that temps above 85c are considered above normal operating range and will have a particularly negative effect on the longevity of the chip. While testing temp using Furmark, I kept a close eye on the bench and shut it off if the temps got above 90c since that is my own somewhat conservative cut-off.