why would someone purchase website hosting for any small site whether they can setup their very own hosting company should they have an extra CPU etc?

Can this local hosting company supply the same procedures/functionality like a compensated hosting company?

Also I'm wondering what is Apache? It's pointed out a great deal however i can't wrap my mind around what it really really is/does.

Apache is really a web server. An internet server is really a system that hosts your site (among other websites). So, whenever you type something similar to google.com the request finally (after lots of intermediate steps) would go to an internet server which "may" have several website running onto it. This web server (it may be Apache or IIS (Internet Information Server from Microsoft)) forwards the request towards the appropriate page which processes the request and transmits the end result.

Why would someone purchase website hosting?
Since you need an externally visible system, i.e. your IP ought to be visible to internet customers which isn't the situation usually. Whenever you take a web connection the general public IP is of the Web service provider (isp) who through some internal mechanism forwards the request for your computer. Next, if you are having to pay for any host, stuff for example maintenance etc. are taken proper care of.