NEVER punish your dog for coming to you
If you are angry about your dog chasing a cat/bird/dog/person and call him to you and punish him, he will remember that coming to you means unpleasant things will happen. ALWAYS reward your dog for coming to you, ALWAYS. If you aren’t prepared to reward your dog then do not call him to you.
Don't call your dog unless you're 99% sure he will respond
Set him up to succeed every time. Start with short distances and minimal distractions and gradually work up from there. Use a long line if necessary. A good way to poison your recall cue is to call and then have your dog not respond. This teaches a dog that he can choose to ignore you.
A truly reliable recall is built on tiny baby steps. This means ALWAYS setting up the dog to succeed and creating a rock solid foundation where your recall word creates an instant association in your dog's head with FUN! Again, short distance and minimal distractions and gradually work up from there.
Once you've created a positive association and the dog is enthusiastically returning for a reward, you can start adding either distance or distraction but NOT at the same time. Start with your dog five feet away and build up from there. Repeat this 10 or more times before increasing the distance to say, 10 feet or so. Repeat 10 or more times before increasing the distance.
If distractions are present you must shorten the distance between you and your dog before calling him. If another dog is near or there is an attractive toy close by, then stand closer to your dog before calling him. If possible, after the dog has come to you, reward him then RELEASE the dog to go and explore the distraction. You will be showing him that a recall does not mean "the fun stops now."
Don’t overuse the recall
Don’t use the recall command as your “go to” word to get control of your dog. Instead of calling your dog to you to leave the dog park or his favorite playmate, go up to him and hand him a treat while you put the leash on him. Then release him to play again for a few minutes. Do this a few times before taking him away from the park or his playmate. If he is going to jump up on a person ask him to sit and give him a reward instead of using the recall yet again. If he darts out the front door, don't rely on constantly recalling him to get him back in. Instead, teach him that staying inside the door is a rewarding and fun experience.
Getting your dog to come to you EVERY time you call him.