I would recommend using the motherboard headers if they work. I've found that usually only a few of the headers actually provide usable speed control and RPM feedback, some older or OEM motherboards don't have speed control at all. Take a 3-wire or 4-wire fan and plug it into each fan port, use SpeedFan to read all the RPMs and try setting the speeds to see what features are supported on each fan port.
If you run out of fan ports you're pretty much out of luck with software control unless you build your own controller from scratch, I haven't found any commercially available USB, serial, PCI, PCIe, or otherwise software controlled fan controllers so you'll have to settle for knobs, switches, or speed selector switches (the fans in the Antec 900 have 3 speeds selected by small switches on wires). If you have some electronics skills and want to build your own controller, Atmel's AVR microcontrollers cost like $5 and have 6 PWM channels that can be used to drive fans.