stability, better software and drivers in general, also many 64 bit programs are just a "raw" porting from their 32 bit counterpart.
Unlike what many people think, a 32 bit kernel has no problem in managing more than ~4 Gb of RAM, infact enterprise-grade 32 bit solutions can use PAE kernels that work just fine.
Regarding Windows 32 bit desktop the answer is simple: it's licensed that way, so the user can't use more than ~3.5Gb of RAM because the OS was built and shipped with that limitation.