Crate training.
Of course, if you end up with a cage rat it's tough to break. A dog has to be especially stupid, however, to become a cage rat.
Woof's routine is a good one too. Use them together... and I agree with the no rubbing the nose in it. It can sometimes be tough to not get mad when the dog pisses in the house... and does it a lot.... but... like has been said, Dogs exist to please, and thus respond much better to praise when they do right than they do punishment when they do wrong. In fact, it's probably better to simply ignore them when they do wrong.
Think like a dog. Somehow the Alpha male is able to gain conformance with his "rules" without being able to speak, yell, etc.. I didn't really "get" that until I tried something I saw on the Dog Whisperer... it was pretty fuckin effective too...
Any time any food hit the floor, my lab was ALL over it. Like a friggin missile. So, I tried this -
I put him in "Sit" and placed a piece of bread on the ground next to me. He jumped immediately. I simply positioned myself between him and the bread, blocking his access. Then I waited for him to return to my last command "Sit" If it went "too long" I reminded him what he was supposed to be doing by pressing firmly, but without any "anger" or the like, on his hind quarters.
Once he was in sit, I'd move away from the bread. At first, he'd try to get it, but I'd jump back in his way. Within 10 minutes of this, I was leaving the kitchen all together and he would not try and get the bread. He had learned it was mine.
Then, after a good session, I gave him some other reward - a dog biscuit.
Another good thing I learned was to use your hand as "jaws" when you need to demonstrate dominance in a physical way. First - never be angry about it. Just be "sure" of yourself. If the dog senses that you're Attacking him, he will fight. If, however, he senses "Hey, this guy knows what he's doin... he's not trying to hurt me, he's just serious about this" he will show submission quickly and will learn whatever it is you were trying to teach him. Open you hand like it would be a dog's mouth, without closing your hand, use the area between your thumb and first finger to basically put him in a head lock against the ground. Again... NO ANGER. This is what an alpha dog does with his jaws. You do it with your hands.
Also... have a good reason for using physical dominance. If he nips at a child, for example... something where you need to let him know... "THIS WILL NOT BE TOLERATED UNDER ANY CIRCUMSTANCE EVER!" When he submits... relaxes (you'll feel it), let him up and be done with it. No further "discussion" will be required. He'll get it... and he'll respect you.