The 4.10⁹ addresses aren't reserved for system RAM only. There are other devices which need them. The biggest culprit is the video card RAM, but other things can use up address space as well. This is why the available RAM differs between computers. Probably your VC in the laptop uses 512 MB RAM, and the one in your desktop PC has a whole gigabyte.
The only way to get 300 MB more is to downgrade your hardware. Another video card would probably bring the highest gain. But before paying for new hardware, you should consider whether you need that RAM. Today, there aren't many applications which can use such amounts. So just monitor your RAM usage and if you don't fill it up often, stay the way you are. Especially as you're on XP, which doesn't use empty RAM as a cache to pre-load frequently used programs.
Edit: explanation why this answer is right when the video card doesn't share memory with the mainboard
Good external link, so you know I am not making it up: link
My own explanation. I kept it very easy, just to be sure you understand it even if you don't have much prior knowledge about how RAM works:
Let's try to use an analogy. You're a librarian, and use numbers to keep track of your books. Your labels only have place for 4 digits. Then you can only keep track of 9999 books. The only way to keep track of more books is to move to a 5-digit-label, but let's say that for some reason, it is very expensive to do that (e.g. you have a hand-held scanner for recognizing the numbers and it only can scan a small label). Now, if you only have an adult section, the limit there is 9999. But if you have a children's section, the books there need the labels too. If you tried to label them as "a" and "c", you could only label 999 books per section as the symbol uses up a digit-place on your small label. So instead, you just decide that books above a certain number are children's, and the remainder are for adults.
Now imagine that you get a large donation at once. After that, you have 12 000 adult books and 3 000 children books. You cannot move to a 5-digit-label soon. If you want to have adult books only, you could label 9999 of them. But if you want to have books for children too, and label 2000 books for children, you can only label 7999 adult books. As you cannot lend books if you cannot keep track of them, you can only put 7999 adult books in use. And the amount of how much books you can put in use depends on the amount of children's books, because both use up labels. The books are all physically there, just everything above the 9999th is unusable.
The same is happening in your computer. You are not labelling books, but memory bits. And your "label" in a 32-bit-system can only count from 0 to 2³²-1, which is 4 GB. So you can only use 4 GB memory total in your system. If there was a way to use this address space for your system memory only, you could use all 4 GB. But when you want to use 1 GB out of your 3 GB video memory, you can address 1 GB less of system memory, so only 3 GB. I understand that you actually have 7 GB of memory in chips (4 on the mainboard, 3 on the video card), but the 4 GB limit applies to the sum of all memory on the system, it doesn't count separately for the video card memory and separately for the system memory.
So your options are to 1. use a 64-bit-OS. The license costs money, and if your processor only supports 32 bit, you'll have to change the processor, and with it, probably the mainboard, too. So this option is very expensive, and probably some games won't run anymore. 2. Use another video card with less memory, preferably 512MB. Costs money and performance. 3. Do nothing.