My rule of thumb is always have 2gig per CPU core, so dual core will be 4gig, quad core 8gig.
XP32 won't support more than 3gb tho.
thats because linux needs it 
Linux memory management is awful. Actually, Linux resource management is awful (non existent) 
does hell

*never* had any memory issues on both of my laptops, desktop or server. (admittedly I did have some issues when running Debian to begin with, but that was quite some time ago)
makes more sense to match memory sizes per core than mix & match, purely on a performance level!
had 3gig in my laptop when bought, since upping to 4gig it is noticeably faster. Even then, memory usage with just 3gig there was only around 1gig with no swap during normal running, at most, 2.5gig used during compiling big apps (even then swap was hardly used)
Noticed similiar performance increases on my brothers desktop (dual core) running Vista64, he had 3gig prior, upped to 4gig.