Which can sometimes be more expensive in the long run to contract out and recieve support. Reminds me of when my friends dad contracted out to the lowest bidder to create a series of tools and software for his robotics company which itself is constantly changing, in the long run he lost thousands due to support and maintanence of those open source tools and software as apposed to licensing already available propriatary stuff, which he ended up doing later on. In house can also be expensive, especially when your lead programmers and engineers quit their job, often taking things with them leaving the next guy a nightmare and expensive legal matters to get into.
Likely it very much depends on many factors including the kind of business you're in, but rarely is there such an easy answer as to just simply make software inhouse or contract others to create such..or otherwise everyone would already be doing it.