I've done a mix of freelance, in-house and agency SEO and find in-house to be the most effective - nothing beats full immersion in the business to establish the best way of marketing it online, in my opinion.
My current role includes SEO, making general marketing decisions that impact the company as a whole, managing bloggers and managing two PPC accounts. I have previously carried out SEO and PPC in an agency setting, managing several large clients myself.
For me, small to medium businesses are by far the most rewarding to work for, as they're often open to doing more interesting things to market themselves, as well as seeing a bigger difference from small changes.
Currently: Implementing the best use of "href lang" for our multinational ecommerce site.