This is one of the tricky questions, a lot of people will answer "It depends".....but they should be more specific!!...
My opinion if the company core business doesn't include Web development, its always a best-practice to outsource their web application, this will reduce both the risks and the cost as well, you can always enforce penalties if one of your Service Level Agreement is not met by the contractor, but with your own staff its hard to do so
hope this was helpful, please vote if it is