64-bit operating systems have the potential to address memory by the terabyte. 32GB ought to be child's play. Your biggest issue after installing a 64-bit OS would be drivers; doubly so with 64-bit linux drivers.
Your max is usally 4GB times the number of dimm slots, eg most boards are 4 dimms per cpu giving 16GB per cpu, hwever that will usaly enatil the memory speeds dropping to dddr266 speeds. I will make a dual board with 8 dimms which gives you 32 G per cpu @ ddr266 speeds.
Hwever finding reasonable priced 4Gb dimms is quite hard...actually its pretty hard to find them at all.
Your mostly likly scenario would be a dual 2xx baord with 8 dimms(4 per cpu) using 2G ddr 400 dimms giving you 32 Gig of ddr 400 goodness.
Usually and "enterprise" or "smp" linux kernels have large memory support, but sometimes your may have to compile a new kernel to use the larger sizes.