Quick way to tell if an installed application is 64-bit or 32-bit
If you run the application, in Task Manager it should have a *32 beside it to indicate it's 32-bit. I'm pretty sure they had this implemented in Server 2003, not positive though, hopefully someone can clarify.
You could also run it through PEiD. PEiD does not support 64-bit PEs, so it will choke if it's 64-bit.
There is also the famous GNU file for Windows. It will tell you all sorts of information about an executable.
Example:
$ file winrar-x64-392b1.exe
winrar-x64-392b1.exe: PE32+ executable for MS Windows (GUI)
$ file display.exe
display.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit</pre>
As you can see, the 64-bit WinRAR installer is classified as PE32+, which signifies a 64-bit executable. The 32-bit application is simply PE32, a 32-bit executable.
The easiest way, without installing another program or running the file, is just to right click on the file, choose Properties, and then go the the Compatibility tab. If there are no greyed out options and Windows XP and 9x modes are offered, it's 32-bit. If there are greyed out options and Vista is the earliest mode offered, it's 64-bit. No need to start the application at all.
If the application is already started, you can of course still use the *32 idea mentioned in other answers. However, this is not available in Windows 8.x and its new task manager. Fortunately, you can enable a Platform column by right-clicking on the column headers in the Details tab and choosing Select columns. The column will contain either "32-bit" or "64-bit" as appropriate.
If you got Visual Studio or the Platform SDK installed you can use dumpbin /headers
to look at the PE header values.
Example for a 64-bit executable:
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
8664 machine (x64)
5 number of sections
4987EDCA time date stamp Tue Feb 03 08:10:02 2009
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
23 characteristics
Relocations stripped
Executable
Application can handle large (>2GB) addresses
OPTIONAL HEADER VALUES
20B magic # (PE32+)
8.00 linker version
2A600 size of code
18A00 size of initialized data
0 size of uninitialized data
2AE90 entry point (000000000042AE90)
1000 base of code
...
And for 32 bit:
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (x86)
3 number of sections
4B0C786D time date stamp Wed Nov 25 01:21:01 2009
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
103 characteristics
Relocations stripped
Executable
32 bit word machine
OPTIONAL HEADER VALUES
10B magic # (PE32)
9.00 linker version
42000 size of code
4000 size of initialized data
6F000 size of uninitialized data
B0EE0 entry point (004B0EE0)
70000 base of code
...
The first value in the file header tells you the architecture: either 0x14C for x86 or 0x8664 for x64.