Make sure your contact for your friend is correct.
Then you or your friend (the issue might be on their end) follow these steps:
Source: http://support.apple.com/kb/ts2755
You will need these to send and receive iMessages:
- An iPhone, iPad, or iPod touch
- iOS 5.0 or later
- A cellular data connection or a Wi-Fi connection
- A phone number or Apple ID registered with iMessage in Settings > Messages
- Check iMessage system status for current service issues.
- Go to Settings > Messages > Send & Receive and make sure that you registered iMessage with your phone number or Apple ID and that you selected iMessage for use. If the phone number or Apple ID isn't available for use, troubleshoot iMessage registration.
- Open Safari and navigate to www.apple.com to verify data connectivity. If a data connection isn't available, troubleshoot cellular data or a Wi-Fi connection.
- iMessage over cellular data might not be available while you're on a call. Only 3G and faster GSM networks support simultaneous data and voice calls. Learn which network your phone supports. If your network doesn't support simultaneous data and voice calls, go to Settings > Wi-Fi and turn Wi-Fi on to use iMessage while you're on a call.
- Restart your device.
- Tap Settings > General > Reset > Reset Network Settings on your iPhone.
- Make sure that the contact trying to message you isn't blocked in Settings > Messages > Blocked.
- Make sure that the contact you're trying to send a message to is registered with iMessage.
- If the issue occurs with a specific contact or contacts, back up or forward important messages and delete your current messaging threads with the contact. Create a new message to the contact and try again.
- If the issue occurs with a specific contact or contacts, delete and recreate the contact in the Contacts app. Create a new message to the newly created contact and try again.
- Back up and restore your device as new.