I think the "almost" is key here - because there are certainly some functions that shouldn't be outsourced. Some people (not sure if this is me or not) would say that the development of a core application, for example, should absolutely NOT be outsourced no matter the cost.