Outsourcing is a growing trend. Here are the key reasons I can think of:
One Stop Shop Benefit
Web development has many dependent tasks. If you go ahead and hire a developer with on particular expertise, chances are he will need help from others. For example, when client comes with requirements, it needs to be properly translated into development tasks by the project manager. Then that should be reflected in design by the designer. Front end and server side development need separate people. Hiring all of them directly is time consuming. You will have to know the ins and outs of development.
The Specialization BenefitOutsourced firms are specialized. There are some obvious benefits to specialization. My team has completed 5 projects so far. It has worked with other organizations from 6 countries for the last 4 years. We have gone through the learning curve and know what clients want and how we can deliver it. That is why outsourced projects tend to finish earlier compared to in house projects.
The Cost Benefit
The application development cost in North America and Europe is higher than that in South Asian countries. That is partially because cost of living is lower in South Asia.