IPhone from one carrier to another?

I have an iPhone 4 on Bell and I want to upgrade to iPhone 5.Is it possible for me to give my old iPhone 4 to a friend? How does that work?

The friend is currently on contract with Rogers. Is it possible for him to get the phone unlocked and carry on using it with his existing Rogers contract? Does he need a new SIM card or can he use the one that's already in there and keep his Rogers phone number and all that?

They have to have the same carrier as you for you to be able to give them your phone.