is it better to hire an outsourcer or develop the people and procedures?

While it would be great to be great at everything, companies can't realistically do this. If the company is clueless about IT, and their management is clueless about IT, and IT simply isn't a core competency, then developing that competency will take a lot of time and energy. (Time as in years. And by the time they get there, they're likely to be behind the current state of the art.) Time during which that company will (as you've rightly pointed out) be at a competitive disadvantage vis a vis competitors who do have basic IT working better.

However a company whose IT is suboptimal doesn't have to take this path. Instead they can hire an outsourcer who is better at IT than they are. 3 months later they can have good enough IT that they no longer have the competitive disadvantage. People's computers will work, email will be up, backups will be taken. It won't be cheap, but it will be cheaper than what they are currently doing. It won't be the best possible, but it will be better than what they are currently doing.

This makes sense, and not just on the spreadsheet.

The key point is that it is always theoretically possible for a company to do stuff for itself better than an outside company can, but it isn't always realistically practical to do so. If your problem is amenable to standardization, then that gap between theory and practice is the wedge that can make outsourcing make sense.

Cheers,
Ben