SEO is a full time job for a person and often requires a whole team with varying skills. This is generally not an option for small to medium companies.
You do not have a need of Outsourcing of SEO if you have knowledge about it and has enough time to do SEO of your site.
Otherwise it is better to outsource SEO services for your site to get better rankings and enough traffic on your site.