Possessiveness (Resource guarding)
Guarding food or objects from humans by growling and snapping is very common in dogs, so common that you could call it 'normal' in dogs that haven't been taught to be relaxed about resources, and to give them up when asked. Some dogs never do this, but most dogs benefit from training, prefereably from puppyhood. Ideally, you should be able to take anything away from a dog without him objecting. Pups can learn that people going near their bowls is as a good thing, if you add tasty titbits to their meals while they're eating. Getting cross with a dog for growling to retain an object may make things worse, by confirming his view that you're a threat. Instead, help your dog to feel safe about essentials, like meals, and teach him how to give up or leave objects. Children are at risk if they try to take away food or something else a dog is guarding, so it's important to supervise small children and dogs, to teach children to leave dogs in peace when they're eating, or gnawing a bone, and to teach them to say 'off' to dogs lying on a sofa, rather than try to pull or push them off..
Food guarding
It's natural for one dog to growl at another trying to muscle in on its dinner. What's suprising, perhaps, is that dogs can learn to be much more relaxed about humans approaching them when they're eating. Dogs like peace to enjoy their meals, just like we do, though, like us, they're quite happy for an extra titbit to be added to their meal. Supervision of meal times is very important if you have more than one dog. Dogs that have to fight to eat will not only see other dogs as a threat, but may also see humans as likely to take away their essential food. Letting dogs have a free-for-all when they eat is training them to fight in order to survive. Give each dog enough space to feel safe while eating meals, feeding in separate rooms if necessary.
Guarding the sofa or bed
Whether or not your dog guards the sofa, it's very useful to teach 'off' as a way of telling the dog to get off furniture - for example by saying 'off', and calling the dog to you for a reward. This means that you can get the dog to vacate a space where you want to sit. Teaching 'off' helps to prevent sofa guarding, and gives you control at a distance. You can make the sofa inaccessible by putting something on it, if you prefer the dog not to use it when you aren't in the room. If your dog guards your bed, keep the dog out of the bedroom by keeping the door shut! You need a dog with good manners if you're planning on sharing a bed.
Teaching dogs to give up objects
Giving up objects and co-operating is something that dogs need to be taught just like humans do. A five-year-old human doing a jigsaw puzzle with another child will often grab a handful of pieces and not want to share them. Both humans and dogs need to learn give and take! Dogs are often relaxed about their food bowls, but still growl to retain 'found objects' and forbidden objects. You can teach a dog to 'leave' potential treasures by offering food with a closed fist, and saying 'leave', asking for a sit, then rewarding the dog with the food. This gets across the idea of 'leave' as 'you can't have it now'. When the dog has grasped this, you can put an object that is likely to interest your dog on the ground, and let him approach it. Before he's too close, say 'leave', and call him, holding up something he finds much more attractive, like a stinky titbit. You can also work with the dog on a lead, with forbidden and permitted objects on the floor, encouraging him to take what is permitted and saying 'leave' for forbidden objects, while moving him away from them, rewarding the dog for making no effort to pick objects when you say 'leave'. Using a lead means that you can prevent the dog from picking up the forbidden objects. A gentle 'chsst' can also tell the dog to avoid the object, if he doesn't get the message at first.
It's also worth putting a lot of effort into teaching 'drop' or 'let go' /give. You can do this first with titbits as a reward for dropping, saying 'drop' or 'give' each time he gives up an object ('drop' if you want the item dropped on the floor, 'give' if you want to take the item). Then you can use this in ball games. First throw the ball, and make a big fuss of the dog every time he brings it back. Have several balls when you start teaching this, as he won't always bring it back. When the dog can do basic retrieves, hold his collar gently and say 'stay' while you throw the ball. Then release him and say 'fetch'. Tell him to 'give' when he's brought the ball back. If there are lots of balls, he'll probably give up the one in his mouth to go after a new one. He may take a while to get the idea, so mix this with simple retrieves, and use lots of praise. If you want to be posh, you can also have the dog present you the ball in a nice sit, and 'give' is better than 'drop' if you want to do formal retrieving. However, there are times when you'd rather a dog just dropped something, if it's really disgusting, so it's worth teaching both 'drop' as well as 'give'. Teaching retrieving is the best way to encourage a dog to bring something he finds to you and give it up willingly, and you can try it with socks, and anything your dog likes to 'find'.
Another way to teach dogs to give up objects is a modified game of tug of war. Get the dog to grab one end. Don't pull hard on the tug, just make a lot of pretend fierce noises and move your hand to get the dog to move around a lot. The dog will probably make pretend fierce noises back. Then say 'drop', and the tug has to be dropped instantly. Then get the dog to sit and stay, throw the tug, say 'fetch' to release the dog from his 'stay' and call the dog when he has picked it up. His reward for retrieving and giving up the tug is having you play and throw again. This is play, with give and take, and the dog using self-control, it is a lesson in co-operation.
Teaching dogs to say 'please' by sitting nicely helps to teach them self-control, and sends the message that good manners can get them more than being 'grabby'. Good times to ask for a sit include before their dinner is put down, or before a ball is thrown.
Dogs can learn from watching other dogs and humans. If you have one very well trained dog, and a newcomer the well-trained dog can teach the newcomer the rules, such as 'if you sit nicely, you're more likely to get what you want'. It can also help for you and the well-trained dog to give a demonstration of retrieving with co-operation, or of taking a ball and giving it up on command, with the newcomer watching. Dogs take note of how we interact with one another, so you try this with a human friend playing the role of the dog, using the same cues that you want the dog to learn. Humans may prefer to bring the ball back, or take it and give it up, using their hands, rather than their mouths, but the message still gets through to the dog 'this is how you co-operate'. It has to be a trusted human, not one who teases you by refusing to give up the ball, because 'naughty' human behaviour can affect dogs.
Emergencies
You may need to take an object from a dog, because it could hurt him, but it's very high value for him, and he isn't yet trained enough to give it up. Taking it directly out of his mouth is not sensible. Some dogs may allow owners to do this without protest, but there's a high risk of being bitten. It's better to get him to drop whatever it is and come to you, if he won't do this on command, by offering him something more exciting (eg a handful of stinky titbits, or skin from a roast chicken).
If your dog has something especially attractive, the whole of the chicken, for example, he's unlikely to want to give it up. Some owners use the 'one wolf stealing from another' method' they squat near the dog, talk softly to him, wear thick gloves, wait until he is drops the object and is distracted, then take it very quickly, before he has a chance to react. They immediately give the dog a consolation prize of stinky titbits to occupy him, once the forbidden object is removed. This is risky in that squatting makes you more vulnerable to attack, so should not be tried on a dog that has ever bitten. Dogs can bite through gloves, so don't try taking something a dog wants from in front of him unless you know your dog very well, and can read and predict him well enough to get the timing right. A safer alternative is to stay standing, get him to drop the object by throwing something very attractive near him, and move the forbidden object from him towards you while he's distracted, using a pole, broom or something else that lets you remove it at a distance.
Always think of your safety first, and just leave the dog be if there is a risk to you and the object isn't very important. It is of course much safer to teach 'leave' before the dog picks something up, and to teach a 'give' or 'drop' command, - prevention is better than cure.