Large enterprises with a dedicated marketing department may consider assigning SEO projects to their in-house team. However, while these employees may be proficient in marketing, SEO is a field in its own right and outsourcing the SEO work to a good, affordable SEO services firm is more likely to yield the results you seek.
Smaller enterprises, on the other hand, may be ill-equipped to work on a high-performance SEO campaign which takes a considerable amount of time. Therefore, outsourcing the work to an SEO agency may make more sense.