There are many companies that choose to outsource certain functions. The most important reason is the cost. There are many things that a company can do in house which can be outsourced to specialized companies and reduce the costs at the same time. A simple example is the accounting and bookkeeping functions.
There are cases where the cost to train and employee one more accountants is higher than simply outsource this function. Similarly, there are cases where the packing, the distribution, the marketing or other similar functions are outsourced for cost reasons.
Of course, it’s not just the cost that needs to be considered. If your company’s resources are valuable then certain tasks should be outsourced to free up some time and focus on things where your company is better at.