You either transfer or push. If it's at the same registrar as the recievers account then you push, if it's at a different registrar you transfer. Transfering will cost, normally, 1 year of registration fee and will add 1 year.
So if you have "google.com" registered with godaddy.com and you want to send to Edward and he has a godaddy.com account you simply "push" to him, the domain will then be in his account and this process is free. Pushing can be done whenever you want. Pushing is instant.
If you have "google.com" registered with godaddy.com and edward wants it in his moniker.com account you'll need to do a transfer. A domain can only be transferred once every 60 days and only 60 days after a whois change. Transferring can take up to 7 days, often 2 or 3. It will cost you 1 year of registration fee to transfer, this will extend the registration date by 1 year from the day of the transfer.