Check this out for a new model of software development. Why hire full-time developers when your business is not software development? Why rent contract labor? Why not just buy the custom software?
Note that your own internal QA processes have to be top-shelf to do this. Internal staff can screw up and you can shift deadlines, reduce the promises and otherwise fudge. If your specifications are shoddy, and you get a shoddy product, then you permitted a shoddy contractor to work to your shoddy specifications. You still hold most of the blame for cost overruns and problems.
Consider many small deliverables with incremental payments so that you can "pull the plug" when things don't go the way you imagined.
http://www.projectspring.com/freelance/index.html
http://www.thecentralmall.com/index.html
http://www.guru.com/ ` <http://www.guru.com/>`_
http://www.programmingbids.com/
http://www.dice.com/ (to a limited extent)