9.x can theoretically address up to 4GB, but can only use up to 2GB. In addition: "The Windows 32-bit protected-mode cache driver (Vcache) determines the maximum cache size based on the amount of RAM that is present when Windows starts. Vcache then reserves enough memory addresses to permit it to access a cache of the maximum size so that it can increase the cache to that size if needed. These addresses are allocated in a range of virtual addresses from 0xC0000000 through 0xFFFFFFFF (3 to 4 gigabytes) known as the system arena.
On [9.x] computers with large amounts of RAM, [in practice >512MB] the maximum cache size can be large enough that Vcache consumes all of the addresses in the system arena, leaving no virtual memory addresses available for other functions such as opening an MS-DOS prompt (creating a new virtual machine)." [Best workaround for this in 98 is to use the MaxFileCache setting in the System.ini file to reduce the maximum amount of memory that Vcache uses to 512 megabytes (524,288 KB) or less.] But 9.x starts to fall over it's shoelaces keeping track of much more than 256MB anyway - it wasn't written with BIG memory in mind and the management overhead means that there's little benefit.
Windows 2000/XP Professional is a different kettle of fish and can address up to 4 GB of memory quite happily. However, it only allows applications to use 2 GB of it. The other 2 GB is for operating system use only. You can modify it to allow applications to use 3 GB by editing the boot.ini, but the application(s) need to be "large address space aware" to gain any benefit.
AFAIK unless you are running a big server (which needs gobs of RAM) or editing really huge files like video then there really isn't much benefit in going over 512MB (apart from boasting rights...). XP in fact runs reasonably well with 256MB.
Well, that's as I understand it (dons flak jacket for correction).