Depends mainly on 2 things: image colors/quality and quantity of shirts you need.
For simpler images (i.e. not too many colors) and high quantities find a place that does silkscreening. You'll get the best transfer of your design for a modest setup fee and a low per-shirt cost that gets lower as you buy more. Also many places will save the screen so you can get more shirts later without the setup fee.
For complex/large designs and lower quantities, go with thermal transfer. Thermal transfer is more subject to fading and not quite as brilliant as silkscreening but if you have a complicated pic on the shirt it's the only way to go.