I think a common problem with dogs don't responding to commands they "know" are:
1. The dog has not generalized the command. Just because they are great in the kitchen, does not mean they know what you're talking about in the living room, backyard, etc. Also your body language plays a huge role, tone of voice, etc.
2. Distractions. Many people neglect to prepare a dog for distractions and assume that just because he's good at home he will be good at Petsmart or when a guest comes over etc. Distractions are huge for dogs, especially a 9month old pup. You need to start slow and work your way up.
3. Reward history. Dogs don't do things just because they love us, or because we said so. People don't do this, why should dogs. Dogs need to get paid, and with something they actually want to work for. If you up the distractions and they're not ready, you need to up the reward. Otherwise it would be like your boss giving you a gift certificate to perkins instead of giving you a check. When a dog is first learning something they should be continuously getting rewards, then they should either be kept on a cont schedule or moved to a random reinforcement schedule. don't make this leap to fast or the dog will get confused and stop responding. A reward doesn't always have to be treats, but it could be opening a door they want to go through, throwing a ball, tug, going for a tug, etc. I use a lot of life rewards, you want something then work for it.
4. Discriminative Stimuli. Dogs are good at learning when they are going to get paid and wen they aren't. If you only reward when you have treats on you, and give nothing when you don't, it doesn't take a genius dog to realize when he has to listen. Start incorporating more life rewards into your daily routine. Also, start having your treats further and further away. For example, start by showing your dog a bag of treats on the table, walk a couple feet away, ask for a command and go to the table to get a treat. Gradually move far away and gradually stop showing the treats up front.
5. Consistency. If you give a cue, you should be giving it in the same way every time. And more importantly, this should have a consequence if he doesn't listen. This doesn't mean abuse, it could simply mean that if he doesn't respond you withhold the treat, or turn your back on him, or... Don't sometimes make him sit for greetings and other times reward jumping. Or ignore barking for 10min before giving in and throwing the ball.
While it is good to be a leader in your dog's eyes, I don't think dominance has anything to do while most dogs don't listen to their owners.