Before I brought Ginger home, I found a great book on puppies, and followed what it told me about housetraining to the letter. People made fun of me, because it seemed pretty extreme, but she was completely housetrained very early and doesn't have accidents. The extra effort in the beginning really paid off.
Basically, here's what we did:
1. Her crate was NOT for peeing, just big enough to sleep in, turn around, etc.
2. When she was out of her crate she was under my nose. (see below - the schedule helped with this)
3. I made up a schedule (combining books recommendations, and the reality of my own life) that included time for eating, eliminating, excercising/playing, and sleeping. I even typed this schedule and taped to the outside of her crate. If you decide to try this method, and don't have access to the book I'd be happy to send you more info on their recommendations. Just send me a pm or mention it here!
4. I followed the schedule to the letter. (Sometimes the times would be a little off, but order of events never changed).
5. As she grew, I adjusted the schedule to her changing needs.
6. As she became trustworthy she gained more freedom.

yaay!
6. Puppies need to eliminate can be predictable if you control their food intake, amount of time playing, etc.
7. When it was potty time (basically after sleeping, shortly after eating, etc.) we'd head outside. As soon as she'd squat I'd say "go potty"! And I'd praise her after she peed/pood.
8. We went through her entire potty training period and I only had to clean up 2 messes inside (and both were my fault, I'd screwed up the schedule).
9. Today I can go anywhere with my girl and KNOW that I can trust her not to pee inside. Additionally, when we go outside to potty I can say "go potty", and she almost immediately squats! Sometimes I think she's faking it!
That's great when its freezing cold outside!