Assuming you already have the motor bought and installed, it wouldn't be worth changing it out now. But you could run it at a lower voltage and use less power - and therefore less current. Even at 6-8 volts will probably work but you would need to verify that your particular motor will be able to start up at the reduced voltage. As a side benefit it will probably be quieter in terms of vibration.
I've been using 2N7000s for a lot of stuff and they work well, but when driven from 5V logic, they won't do nearly as well driving heavy current as a 2n3904. (I get my '3904's for 5-10 cents.) The 2n7000s heat up too much under heavy load and will burn out.
Using 3A as a target, you can get Fairchild's KSD882 for 30 cents at Mouser for just a quantity of 10, but the cheapest 3A MOSFET I could find there was the IR's IRF610, going for 48 cents per 10. Sure it's only 28 cents difference, but if money isn't the objective, why not just go with a proven motor shield for Arduino...there's got to be hundreds out there for sale.
I can promise you this. That circuit I showed does work. I've tested it having the output cooking a 12 ohm load resistor connected to 24 volts, while the bipolar transistors were hardly heating up 10 degrees or so without a heatsink - didn't even reach the body temp of 98.6°F!
I haven't looked into IGBTs much, but my understanding is that they are much more expensive and therefore most useful for seriously high-powered drive circuits where the benefits outweigh the costs. I could be very wrong there, it's just what I've read/heard.
P.S. I also have a Technics SL-i forget. Same features as KISS described. I used some kind of magnetic Sure cartridge using hyper-elliptical diamond tipped needles.