All 32-bit client versions of Windows (not just Vista/XP) have a 4GB address space. That’s the theoretical upper limit beyond which you can not go. But you can’t use the entire 4GB of address space. Even though you have a 4GB address space, you can only use about 3.1GB of RAM. That’s because some of that space is used by hardware and is not available to the operating system and applications. The amount you can use varies, depending on what hardware you have installed, but can range from as little as 2GB to as much as 3.5GB. It’s usually around 3.1GB. It is not that the hardware is the actual RAM itself just the “Address”. The rest of the RAM goes unused because there is no address space to map it too.
For the most part you aren’t likely to use more than 2 gig’s of ram in a 32bit OS, anyway, so it is unlikely you are going to miss this unused ram, but in the off chance you are trying to squeeze every last ounce of ram out of your 32 bit OS, you can disable any hardware you aren’t needing, and this will free up more of the ram.
You can also consider moving to a 64 bit OS which will resolve the issue and let you use more ram that current motherboards support.