I use martingales...for walking/outside only. One thing you can try is tothe minute they start pulling ...immediatly stop turn and go the other direction or stop.
What Jane said is exactly the way to correct pulling. For an advanced puller you have to have a lot of patience and be willing to spend alot of time turning around but as soon as the dog tightens up the leash turn quickly. Only continue on if the leash remains slack. You have to use a 6 or 8 foot leash for this not a retractable one. There are lots of gimmicks out there but this method actually works!
For my worst puller, Reagan, I use a gentle leader. The head harness has been a miracle for me.
God bless my little Butterball, but she is an awful puller as well. I always call her my little sled dog the way she pulls. I've tried so many things under the moon to try and curb the pulling but she is a stubborn little one. (A corgi.. stubborn.. NEVER!) Lol. Anyways, my mom actually picked up the wonder walker halter in Seattle and that thing is a miracle worker. The leash actually connects to the harness from the front so that any time she tries and pulls it will give her a slight gentle tug either right or left. It completely curbs the pulling. It was a miracle worker for us. I tried a normal harness and that just made the pulling worse because it gave her more leverage. Here's the link to the website for the harness... http://www.wonderwalkerbodyhalter.com.
See the collar FAQ.