Most companies outsource for the wrong reasons: to cut costs or to remove "non-core" distractions in order to focus on "core" IT.
The first is just a way of getting somebody else to wield an axe you should wield yourself. If the service isn't adding value, don't provide it. If you need the service, you can cut costs yourself instead of paying an outsourcer to make a profit.
The latter is dangerous. Narrowing your areas of specialisation increases the risk of your company's obsolescence as technologies, vendors or even your own customer markets shift. Focusing on core technologies or applications leaves you highly vulnerable to threats from competitors who adopt new technologies. What happens to your IT department when a core application becomes obsolete? Or if your business has to shift into new markets that need very different applications, or different implementations of those you have?
Too many IT departments focus on optimising performance, forgetting that their real objective is to make the business perform better. What most of them need is more room to experiment, try new technologies, try new applications, try new solutions, seek out new customer market opportunities and find ways to grow the business.
Use outsourcing to free up your resources for these tasks. Active sunsetting of old systems is critical, so use outsourcers to complete end-of-life projects cheaply and quickly. Press your IT shop into setting up white space projects: an approach to innovation in which people have permission to experiment in search of new value-added solutions and are given resources to prove the viability of such solutions.
Know which new technologies you need to deploy before you have to and get out of spending on legacy systems so you can be ready. Always keep your attention on doing the next big thing.