Fire up Task Manager in Windows XP, hit the Processes tab, and you'll see among other processes something called "svchost.exe". Again and again. In fact I have 5 copies running on my machine as I type this.
•
Svchost, as the name implies, stands for "Service Host". Many components of the Windows operating system are implemented as what are called "services" - a fancy name for programs that run in the background and aren't necessarily associated with whomever is logged into the machine. You can quickly see which services are running by typing NET START in a command window or by looking in Control Panel, Administrative Tools, then Services.
A fair number of those services are implemented in DLLs rather than in stand-alone executables. But a DLL is only a library of functions that can be called by running programs - it can't be run on its own. Enter svchost. It's a standalone program whose job is to execute services that are implemented in DLLs.
You can see which copy of svchost is running what service by typing tasklist /svc in a Windows XP command window. On my machine, one copy of svchost is responsible for 30 separate services, another is hosting 4, and the remaining 3 have one apiece. Why this odd distribution? The only vague clue comes from Microsoft's documentation which says "this allows for better control and debugging." OK. Whatever.
Speaking of Microsoft, they have knowledge base articles on the subject. Svchost in Windows 2000 is described here, and in Windows XP here. Both descriptions include the specific registry keys that control what services are run and how they are grouped in different instances of svchost.