Em algumas raras ocasiões, na programação em .NET, você pode precisar saber se o processo no qual o seu assembly está rodando é x86 ou x64. Pense, por exemplo, no carregamento em memória de uma DLL específica para x86 ou x64 em tempo de execução. O .NET Framework 4 disponibilizou o membro Environment.Is64BitProcess, que é um valor booleano que indica exatamente isso.
No entanto, quando trabalhando com o .NET Framework 3.5 ou inferior, existe uma maneira muito simples de se fazer exatamente a mesma detecção: pelo tamanho do tipo IntPtr (Ponteiro Inteiro).
A detecção, na prática, é bastante fácil:
if (IntPtr.Size == 8) /* 8 bytes = 64 bits */ else /* 4 bytes = 32 bits */