I read this article on outsourcing and the huge number of comments on Digg.
There are many good and bad reasons for outsourcing and it varies with industrial segment - so I'm going to talk primarily about IT.
The exists little correlation between IT spending and value generation however the main reasons for this would seem to be that not all IT work is the same.
You can categorise most of this work into three distinct sections.
CODB (Cost of Doing Business): Those systems which are needed to compete in the marketplace. Such systems are common across all competitors and hence bring no inherent value to a company as there exists no differentiation (the exception to this is in cost and the success of implementation). The lack of such systems puts the company at a distinct disadvantage. They are strategic systems, as per the "IT arms race" argument, in that they are a necessity.
How do you recognise a CODB? Well if there is a term for the system, standard product offerings and you are aware that all your competitors either have one or are building one - it's a good bet that it's CODB. For example - ERP, Accounts Ledger, HR system etc.
The approach to CODB should be "cheap as chips" and certainly "cheaper than my competitors", and the cheapest way to do this is in general to use a standard product (ideally a utility service) and not to customise it.
CA (Competitive Advantage) : These systems are novel, new and with a real potential return in a short period of time. As they are novel and new, they are inherently risky.
How do you recognise a CA? Much more tricky, but if it is something that no-one else has done, has a core team of experts who believe and are passionate in it (think more Marquis de Condorcet rather than wisdom of crowds), has some concept of where value can be generated - then it is more likely to be CA.
Such systems are more ideally suited to "worth based development" - i.e. a VC like approach to funding (either internally or externally). Such projects create real value but they are the minority (a few percentage points).
The final category is transitional, which is the movement from CA to CODB as any advantage gained is quickly adopted by the market.
Now if you don't divide systems into such categories, then you have a mixed bag of CA, CODB and transitional projects. Any real value is being made by a small minority and the costs are being made by all. To compound this if you treat all as the same, then you are more than likely to be overspending on CODB (unecessary cost) and underspending on CA (increasing likelihood of failure).
The cost / value link is broken internally.
Now let's make things worse by treating CODB (which can be described as static or known problems) and CA (which being new can be considered dynamic problems - more akin to R&D) as the same class and applying the same methodologies to solve them, combined with a focus on customisation.
You'll then have little or no link between cost and value combined with the wrong methodologies and a correspondingly higher failure rate.
High failure rate? High cost? Uncertain value? Sounds familiar?
Well if you are going to do something badly, then at least do it cheaply! So the natural response is to outsource to the cheapest possible provider.
This doesn't mean you won't get an equivalent result from that provider - high failure rate & uncertain value , you've just reduced the cost of it. There are however much better ways of solving this problem - IT doesn't have to be done badly.
Few people would argue that universities should just be teaching colleges, whilst all the research is done with the cheapest possible labour in the cheapest possible county. This scenario could happen if we acted as though research and teaching are the same thing, failed to distinguish between the activities and believed you could gantt chart yourself to a new discovery in the same way you can schedule a series of lectures - one is static, one is dynamic.
A more pragmatic view is to recognise the differences and treat them appropriately. The same is true with IT.
Use a "cheap as chips" approach in CODB / Transition (which means standard products, utility services - very little customisation) and use alternative funding mechanisms for that which is CA based upon highly skilled experts.
There is an enormous amount of unnecessary waste in IT but the solution is not to make it someone else's problem, you'll just end up with a cheaper way of producing unnecessary waste rather than an effective use of resources.