Depends...
It depends on what you're looking for...
Silkscreening will always be the cheapest option, usually ranging between $5 and $8 per shirt, depending on the number of colors being printed, type of shirt, and number of sides being printed.
Direct-to-Garment (aka DTG or Digital) will be more expensive, but unlike silkscreen, there is no heavy "patch" feel. It is essentially an over-sized inkjet printer that pulls the shirt into the bay and prints directly on the shirt with a water-soluble dye that dyes the cotton fibers directly. It will not crack or peel like a silkscreened shirt will over time.
Pricing for both of these options will be affected by quantity of shirts as well - most silkscreen printers will have a minimum order requirement, whereas DTG can do one-offs.
I used to work for a t-shirt printing company named Big Frog (
www.bigfrog.com). They have stores located across the country, so you may want to see if there is one located near you, otherwise they can, and will, fulfill your order and ship it to you. You will want to ask them if they have the printer with the white ink, as that is needed to print on darker colored shirts (i.e. navy blue, brown, black, etc.) as the white ink will be layed down first and the color printed on top of it. The white acts as a "foundation" for the color so it doesn't get absorbed into the cotton and not show up.
Hopefully this has been helpful. Let me know if you have any other questions.