Surprisingly I had the opportunity to work under both the systems. Both have their own set of advantages and limitations. My previous post On an attempt to classify Content Writing, I partially touched this topic. With In-house SEO, people get more time to master the subject. But people working in SEO companies need to handle a number of websites all the time; so they hardly get time for excelling a single domain.
This temporary deficiency of domain knowledge sometimes affects the quality of work. A writer who has been creating web content only for a Credit Repair website for 2 years obviously knows more about the topic than the writer who writes on various topics everyday which may or may not include Credit Repair. The same is true for Link Builders, Bloggers and Social Media Marketers. (I will contradict this paragraph very soon; stay tuned!)
Then why do the SEO firms exist? There are advantages of Outsourcing too! Most of the SEO companies have their own networks; network of blogs, websites, bookmarking sites and all. These networks are kept for their clients. Some SEO firms may own good web directories. If you assign your link building task to them, you get good one way links from those places easily.
If you target 100 links per month, you can appoint 4 different SEO companies to do link exchange on your behalf. This way you not only make use of various networks of websites and blogs, but you avoid leaving any link building pattern that Search Engines can blame you for!