You'll get varying responses from different people. :)
From my take on it, I would try to get up to 4Gb of RAM - however you may do it. It does sound like one of your RAM modules is bad. I would check your BIOS to see how much RAM and in what configuration it sees. It should tell you what modules are present and how much they are. If one is missing, it's probably bad and you should try to figure out which one to replace (remove one and try to boot seems like a valid way to find out short of an expensive DIMM tester).
Really, 4Gb seems generally fine for most general use cases. The only cases I would consider getting more than that is for heavy programming, server systems, virtual hosts, gaming or video/audio editing. Other than the additional addressable RAM, I personally don't see a compelling reason to upgrade to Win7 64. If you were building a new system, sure... but to upgrade after the fact; I don't see the need.
Your processor looks relatively decent and your video card should probably be sufficient for your needs. Graphics editing programs don't tend to use video cards for acceleration, so the card is probably mainly busy rendering pretty transparencies for Windows 7 - which its more than capable of.
The only other thing I would probably touch offhand would be swapping out those hard disks for SATA. There is a much improved data transfer rate that should improve the rate at which your applications and images get loaded into memory. You may even look into an SSD if you've got money to spare.
As far as what Joel said about 4Gb of Total Memory... I would be curious to see some support. The problem with a 32bit OS reading > 4Gb of memory (afaik) is that the maximum expressible memory location with a 32bit integer is lower/equal to the 4Gb memory level. So, in order to address anything beyond that - you need a 64bit integer.
The part the confuses me there is that the video memory and system memory are separate entities (generally - ya, some are physically shared but those are still treated separately as far as apps are concerned). One does not address the bit @ 4Gb + 1 to get into the video card, its a separate instruction set. The byte location 0 can be share by both devices, as they are referenced in different ways. Consequently, both have the full range of available byte locations for integers - 4Gb available for both of them, not the sum of them.