64-bit mode doesn't just add support for more RAM. The amount of general-purpose registers (tiny banks of memory in the CPU that hold the data that is currently being worked on) is doubled from 8 to 16 and the amount of SSE registers is also doubled. A data intensive application or an application that has to keep track of a lot of thinks at one time can definitely benefit from the extra registers as long as it's optimized to take advantage of them.
The problem isn't porting a program to 64-bit. Porting a program from x86 to x86-64 is a cakewalk compared to other 64-bit architectures (such as IA-64 and PowerPC). In most cases, if the code is well written, doesn't make hardcoded assumptions about the hardware and doesn't make use of inline assembler porting to x86-64 is as simple as a recompile.
The difficulty however, is in the optimization. 64-bit introduces additional overhead because a lot of your datatypes are larger which means the computer has more stuff to keep track of. And unless you actually optimize your program to take advantage of the extra registers that long mode offers, you'll see very little in the way of performance gains. That's why the few x64 native games that have been released have actually shown performance decraeses because they were merely straight ports with no real optimizations.