Win9x (95, 98, ME) should be able to address 2GB of physical RAM, supports a 4GB address space, but will require
tweaking to work with over 512MB.
W2K and XP (don't know about NT3.5/4) should be able to address 4GB of RAM and
W2K Datacenter Server has a limit of 32GB RAM. The ia64 version of XP/.NET/whatever naturally supports more than 4GB, but I don't know how much.
Then there's the question of how much of the address space is devoted to the kernel and how much for user space.
In NT4 Server Enterprise Edition, W2K Advanced Server and .NET Enterprise Server the partition is 3GB for user space and 1GB for the kernel.
"Ordinary" NT/W2K/XP has 2GB/2GB split and 9x/ME has a really fucked up memory map.
You can find some info in the Windows Platform SDK, under Base Services/Memory Management.