I can write on this with authority as I've been freelance full-time since 2008 (7 years now) and since going freelance have worked for many agencies and companies selling SEO services and Pay Per Click Advertising. Before going freelance, I worked for a digital agency for around 2.5 years.
Factors worth considering include the following:
1. Freelancers have more experience (according to some research)! The Brighton Search Engine Optimisation Conference 2013 UK Salary Survey (http://www.brightonseo.com/2013-uk-seo-search-marketing-salary-survey/) suggests freelance SEOs may have longer professional experience (an average of 5 years) in SEO consultancy than agency staff (or in-house SEOs).
For example, in my case I have over 9 years professional experience (nearly twice the average freelance SEO's professional experience) and with well over twice the professional experience of the average agency / in-house SEO staff member according to the above survey. The senior manager (even director) at your agency may only have a maximum of 3.5 years experience according to the above survey!?
If you had a website before 2011 and since that time you've had search engine issues (e.g. a drop in search engine rankings or a formal penalty from Google), you need an experienced professional to help you understand and deal with any legacy effects of previous SEO work (e.g. sites affected by the Google's 'Panda' and 'Penguin' algorithm updates) . Your SEO advisor needs to know about the whole range of old SEO techniques (including illegal methods that have been and are used) and the possible ongoing issues that may remain to to this day (e.g articles on article syndication sites continuing to be syndicated on new sites).
Need I go on?
2. Usually when you work with a freelancer the person who you speak to about the work is the person that did the work so there is a direct chain of accountability, reporting and feedback . At an agency (however small) the person you speak to can be an account manager whose focus will be on customer service, sales and the financial arrangement and most likely didn't do the work themself.
3. Freelancers may be able to work more flexibly (outside of the contracted agreement) than an agency.
4. Freelancers can be more cost-effective as they may not work on a retainer basis or use long contracts.
5. Often agencies can charge £100+ per hour but sub-contract work overseas or have company offices in other countries with the lack of local search market knowledge / lack of control that this may entail. For example, the big English ecommerce company Venda have offices in Thailand!
6. Some SEO agencies spend large amounts on Google AdWords traffic to generate their own leads and don’t know a great deal about SEO it would appear. Some unethical SEO companies might promise to rank you highly in search engines from day 1, but pay to place you in the ad section rather than in the 'organic' search results. Here's some good guidance from Google on hiring a SEO company: https://support.google.com/webmasters/answer/35291?hl=en .
7. Freelancers may be able to respond more quickly to your emergency requests.
8. Freelancers may be more able to work alongside you in your office and get to know your business better.
*I have spent a total of £25 on advertising my services on Google since 08 (- this was free credit and I still have credit left).