I do SEO for a few companies as a self employed contractor (amongst other IT services).
It really depends on your product/service. Is it highly competitive? Or more a niche product/service?
Be careful, there are a lot of cowboys out there who will promise the world and deliver nothing, while also taking your money. I've had first hand experiences and given companies a better service while saving them thousands per month.
I've met a few of those, now I am very cautious when I hire someone. This transformed me into a very skeptical person and I am not so trusty as I was 1 or 2 years ago. Now, when I need a good and qualitative service, I ask from people who I know, so when the situation was so bad with SEO, one of my friends recommended me to try Geelong. I really like how they are doing the job. The results could be seen from the first days, and the statistics were showing the same, that the amount of people visiting my website increased by a lot.
Yep, probably go by personal recommendations from any other business contacts you know.
It can be bloody hard for people like me also. I don't expect people to know how it all works, but when someones tells me "when I search for <whatever> I want to be at the top", they just don't understand. I usually say something like "anyone who guarantees that they will get you to to the top on Google is a liar".
Unfortunately there are many around who will say anything to get your business. They'll spin any sh*t to confuse you and take advantage.