Why does 'uname -m' says 'i386' even if I'm on Macbook Pro on Intel Core 2 Duo? My Macbook Pro is running on Intel Core 2 Duo 2.26 GHz. OS - Leopard 10.5.8. My assumption is that all Core 2 Duo processor systems are 64 bit. But uname -m command outputs i386. Why is it so?
It's because, by default, Mac OS X boots in 32-bit, excepts some recent models.

Quoted from Apple KB Mac OS X v10.6: Macs that use the 64-bit kernel :

This Mac uses the 64-bit kernel by default in Mac OS X v10.6 : 

 - Mac Pro (Mid 2010)

These Macs use the 64-bit kernel by default in Mac OS X Server 10.6 :

 - Xserve (Early 2008) and later
 - Mac Pro (Early 2008) and later
 - Mac mini (Mid 2010)

These Macs support the 64-bit kernel, but do not use it by default : 

 - iMac (Early 2008) and later
 - MacBook Pro (Early 2008) and later


Here is a little software that can help you to boot in 64-bit if your hardware supports it.