Web hosting services fall into several categories:
Shared hosting
Shared hosting services group many customers onto a single machine, using the operating system's multi-user features to separate their activities. The server machine runs a single web server instance which is configured to serve content by multiple users. Shared hosting servers typically run Windows, Linux, or FreeBSD. Shared hosting is the most efficient and most popular type of web hosting service since many customers can make use of the same system software installation, but it also presents the most security and resource contention issues.
Shared hosting services running Linux or FreeBSD typically offer shell access to the customer, but sometimes only offer access by FTP. They typically place resource limitations on users to help prevent a single user from interfering with the operation of the whole machine, but operating system resource limits may be insufficient to prevent such interference, so monitoring is also necessary.
The most common implementation language for applications running on shared hosting services is PHP. PHP code is often run via mod_php, but can also be run via CGI. Some providers don't allow mod_php because it is harder to monitor than CGI, since it runs inside the httpd process.
A key piece of technology in shared hosting is the site control panel, which provides users with the ability to easily deploy standard web apps, see their resource usage, change their billing options, etc.. Large hosting services typically develop their own control panel; small providers typically use a standard control panel like H-Sphere, cPanel, zPanel, etc.
The most common billing model for a shared hosting provider is a monthly fee for a fixed allotment of resources, possibly with overage charges if those resources are exceeded. It is common for shared hosting providers to "oversell," offering much more capacity for a low price than most customers are likely to use, and sometimes terminating the few customers who have above-average resource consumption (even if they aren't exceeding their contracted amounts). Due to overselling, it is often hard to tell as a customer how good of a deal you are actually getting for your money, but prices typically vary from "budget" plans of under $10 per month to middle-end plans of $25-40 per month.
An example of a small, "solid" shared hosting provider is pair.com. An example of a popular large "budget" shared hosting provider is dreamhost.com. Small and large hosting providers have very different feels, but have more or less the same feature set.
Virtual Private Server hosting
VPS hosting is a relatively new type of service enabled by advances in virtualization technology, particularly Xen. A server machine is partitioned into a number of virtual machines, usually with a dedicated set of resources (processor time, disk space, memory, etc.) and the customer is given complete control over what runs on the machine. VPS hosting is less efficient than shared hosting since each customer uses a separate operating system image, and carries a correspondingly higher price tag, on the order of $50 to $200 per month.
VPS hosting services need not be focused on web hosting. Amazon's Elastic Computing Cloud service, for instance, is a VPS hosting services oriented more towards general computing.
Since customers have complete control over VPS instances, by default they bear more responsibility for the administration of software thereon. Some hosting plans are advertised as "managed hosting," meaning the staff of the hosting service will provide system administration services as well as hosting services for the customer. The extent and quality of those services varies with the provider. To control support costs, some managed hosting offerings do not give the customer root access or complete control over the server instance.
Dedicated hosting
Dedicated hosting is much like VPS hosting, except instead of a virtual server image, you get an actual server machine. Prices generally range from $200 to $500 per month.
Colocation services
Colocation service is similar to dedicated hosting, but the hardware is provided by the customer.