You can do it yourself for free. There's no real magic to it, or specialist tool used, just ensure your webpage is coded properly and features relevant keywords you want to be found by.

Try and get outside links to your site form other (relevant) websites with keyword rich anchor text. A blog attached to your site is good for SEO too.

If you still want to pay, I'm sure you'll get some offers from people on here.
Agree with Paul. You need to look at your on-page mark up first. Things like using images for links with no text alternative and lack of an h1 tag are not going to help your cause. You can go to a pro SEO company but they'll just charge you to tell you what we will tell you for free :icon_wink:
I can do seo for you - very reasonable. :icon_notworthy:

onsite and offsite - white hat black hat etc etc
Black hat is just a temporary fix though. Everything along those lines will get found out eventually.
I think black hat is o.k for something that isn't long term, for example ranking quickly for an event such as the Olympics, something that once it is passed the domain is no longer of use. I would never use black hat on something such as my main business because if google found out it could be the end of it, literally.