Jumping up to great people when a dog is excited or greeting you is natural. But it is also a behavior that most people don't approve of. This is one of those behaviors that takes cooperation from everyone, because if your dog is rewarded for jumping on just one person in the family, it will be near impossible to teach him not to jump on everyone else. Although it may take time to correct, this is a simple behavior to rid of.
If your dog jumps when you come home, then act as if coming home is the most boring time of day. Don't pet your dog, look at him or talk to him. In other words, totally ignore your dog, because if he gets very excited when you come home, it is probably because you are also very excited. Once your dog settles down you can pet him all you want, this his rewarding him for being calm. If at any point he jumps on you, simply turn your back to him and wait until he gets down, don't scold him or touch him. This teaches him that jumping on you does not give him any attention, positive or negative.
Another method that you can use separately, or combined with the previous, is to make your dog sit when you get home. You can also make him shake or do a trick to keep his mind engaged on listening to you, then pet him once he is calmly sitting. (Keep in mind that some dogs get even more worked up if you have them do a trick for you, do what works for you and your dog.)
When guest come over, tell them to specifically ignore your dogs, no petting, talking to or looking at Fido untill he is calm. Also tell them to turn their backs to your dog if he does jump.
Training becomes much more complicated when you add a bunch of strangers to the mix, like dog parks or gatherings. If your dog jumps on complete strangers where ever you are, I would suggest keeping him on a tight leash and preventing him from jumping. It is also important to reward him for not jumping. Take him to stores or parks and have him sit while people pet him, giving him plenty of treats to keep his attention on you.
This behavior can take awhile to train out of your dog, but its worth it in the end. Consistency is extremely important, don't let your dog jump on uncle Joe, but not on you. No jumping means no jumping on anyone, ever.