You can make calls from public telephones using prepaid Tarjetas Ladatel phone cards, which you can buy on magazine shelves. The cards can be purchased in denominations of 30, 50 or 100 pesos. The rate for calls to the United States is about US$0.50 per minute. Be careful, these cards are different from the tarjetas amigo, viva or unefon: they are for mobile phones.
In some neighbourhoods there are only a few internet cafés, in others they are very numerous. The usual prices range from 7 pesos/hour to 20 pesos/hour. Currently, most internet cafés offer calls to the US at a cheaper rate than a phone box, mostly via VoIP.
If you have an unlocked GSM phone, you can buy a prepaid SIM card in Mexico and have a local mobile number to use in case of emergency. Telcel offers good coverage throughout the country and you can get a SIM card for 150 pesos with 75 pesos of talk time (send *133# to check available credit). If you have an iPhone, try to get an Iusacell SIM card if you want to use data. You will need your passport to register and the whole process can take up to an hour.
It is often much cheaper than what hotels charge you, and incoming calls can also be free with some programmes. Mexico operates on the same GSM frequency as the United States, 1900 MHz. There is a wireless internet connection in almost every restaurant or hotel in the larger cities.
If you are staying longer than a week and do not have an unlocked phone, it may be a good idea to buy a cheap phone (<$200 MXN) and a prepaid card.