I'll go with SEO agency option.
Just like @mindmyweb said, if you want to hire in-house, it's very difficult to find good SEO people. If any, they would probably already work for SEO agencies, which eventually makes you hiring an SEO agency.
Yes, the option of hiring SEO agency could be costly, but so what as long as you can afford it?
You cannot monitor the whole progress? Just same like hiring in-house, I believe you're too busy with your business that you also cannot monitor how your in-house employee works.
Indonesia SEO Service - Jasa SEO
for Google Top 10