In iOS 7, you can (finally!) block phone calls, messages, and FaceTime requests. In the Settings app you can go to Phone > Blocked or Messages > Blocked to add phone numbers and email addresses.
A catch as of iOS 7.0.2, however, is that phone number(s) or email(s) you want to block must already be added to a contact in your device; tapping the Add New button displays a searchable list of all your contacts, and there is no way right now to manually add addresses. I should also note that this is for blocking incoming phone calls, iMessages, and FaceTime requests from phone numbers and email addresses (iMessage allows you to register both for these features); as far as I know, it doesn’t work to block incoming SMS or actual emails.
Update: Thanks to Brian Webster on ADN, you can block numbers and addresses without having to add them to a contact. Just go to the Recent list in the Phone or FaceTime apps, or tap ‘Contact’ at the top of a conversation in Messages, then tap the (i) button and scroll to the bottom of the details for that number or address to find the ‘Block this Caller’ option.
On the upside, tapping a contact will add all of their phone numbers and email addresses at once, so there’s a trick you can use to save some time when it comes to random addresses not yet assigned to a contact:
- create a new contact, name it something like “Undesirable”
- add all unwanted numbers and emails to this new contact
- whenever you make significant updates to your new contact, re-add them to the Blocked list (no, it doesn’t update automatically)