This tutorial is the result of trial and error. I've made dozens of shirts in the past few years, and this is the
best and
easiest way.
First, gather your supplies.

1. A piece of thin cardboard able to fit inside of your shirt.
2. Paint in whatever colors you need. Cheap acrylic craft paint works just fine.
3. Any kind of cardstock or thick paper. I find that watercolor paper is rigid enough to hold up under paint, yet soft enough to be cut very easily.
4. Spraypaint. Color really doesn't matter.
5. Masking tape.
6. An X-Acto knife.
7.
A small sponge paint brush.8. A thin to medium sized paint brush.
9. An iron.
Next, use Photoshop to create your stencil. The way I do this is to open it, go Image>Adjustments>Threshold. Mess with the slide until you're satisfied with it. Next, print it out onto your cardstock or heavy paper. Cut out all desired areas with an X-Acto knife. The next thing that you want to do is get spraypaint and test your stencil. This is really optional, but worth it nonetheless. Here is what my stencil looks like at this point.

Now comes the good stuff. Slide your thin piece of cardboard into your shirt. This prevents paint from going through. Tape your stencil into its desired location. Tape your stencil down and with your
sponge paintbrush, dab up and down. DO NOT DRAG THE PAINTBRUSH! This is ineffective and could cost you dearly. I made this tutorial after I finished, but imagine my hand going up and down in this picture:

Put on as much paint as you like. As long as you're going straight up and down, you shouldn't get any where it doesn't need to go. It's good to use a small amount of paint on the brush, though. That way you have more control. After you've finished putting paint everywhere, give your shirt 5-10 minutes to dry. You can use this time to wash your spongebrush. Now you can take off the stencil and see what you're left with. You can use your regular paintbrush to touch up areas that need to be fixed. You can also use a permanent marker if you're using black paint. Now lay a towel over your shirt and iron it for 2-3 minutes so that the paint becomes set permanantley.
The end result should look something like this.

Total time: About 45 minutes.
Any questions?
EDIT:I decided to update this a bit. First, to prevent any cracking, always mix a bit of fabric medium into your paint. It's available at Hobby Lobby, is fairly inexpensive, and is a really nice pearl white color. Next, printing your image onto freezer paper and then using an iron to stick the sheet onto the fabric is an excellent method of paint control. Just print on the dull side, set your iron on a pretty low setting, and iron the shiny side down for about 30 seconds. It makes a really weak bond, but serves it's purpose well. I've also gotten into the habit of letting my shirts air-dry for 4-5 days before heat setting them. Hope this helps.