http://www.digikey.com/product-search/en?lang=en&site=US&keywords=tip120
TIP120 is a BJT, which is a different family of transistors from FETs. Below is a broad, oversimplified, cartoon version of how they both work. The below assumes NPN and NMOS, as specified in the question. PNP and PMOS would invert some of this.
A BJT has very low base impedance; essentially, there's a diode between base and emitter. This means that if the transistor is "on", the base of the transistor will be ~.7V above the emitter. If you try to drive the base higher than that (say to 3.3V or 5V with a microcontroller I/O pin) an undesirably large amount of current will flow, and bad things will happen. You have to have something between the I/O pin and the transistor base to limit that current. Thus the resistor. The processor side of the resistor goes to 5V (or whatever your microcontroller logic rail is), and the transistor side goes to ~.7V. This voltage differential, divided by the resistance, gives you the current being injected into the base. That, plus the transistor characteristics, tells you how much current can now flow through the BJT collector-emitter.
A FET has very high gate impedance, so no current flows into the gate when it's turned on. You apply voltage between gate and source, and the "switch" closes. The gate can typically go up to 20V above the source, so driving a FET with a microcontroller isn't typically a problem.
Instead, you have the opposite concern: some FETs need more gate voltage than some processors can supply!
Now, there are all sorts of additional details. Sometimes you put a resistor in series with the gate of a FET, for filtering purposes. There is actually current flow into the gate of a FET, particularly at turn-on and turn-off, which can matter for some applications. And BJTs and FETs can be driven in an analog mode, where they're neither fully on or off, but somewhere in between. Sometimes that's good, sometimes it's bad.
When I'm wearing my microcontroller hat, I tend to use FETs wherever possible. In general, they're easier to work with and their losses are lower. BJTs are sometimes cheaper, and they're more likely to be the choice for analog control applications.