What is sure on the other hand is that if dev is outsourced, and I mean like in we buy it from someone who has some code crunchers on the other side of earth with a liason (again subcontracted) aat our place, is that internal developers have some acquired knowledge of processes and the business.
My personal opinion is, if you find some way to conduct tests and reviews during the development, your product will be less-bug ridden, more userfriendly and ready faster. And if you can pull this, it doesn't matter who does the development. Again, time and distance play a role, but that's not exclusive to outsourcing.
What non-tech companies usually do on the other hand is providing some specs, give them to some external big-name, hope everything goes fine and then conduct some final tests under high time pressure two weeks before go live. And when that doesn't work, they blame outsourcing while it's actually the process that is broken.
But that's actually good news for all the start-ups out there!