The iPhone is great. It is one of my favorite devices. However, I still run into some missing features every once in a while. For example, on iPhone 4 OS version 4.3.3 (8J2), you can select "none" for a contact's text tone, but you must select a ringtone. Why would you want a contact that cannot ring you? There are many reasons, but here are a couple I have: prank callers, questionable characters from Craigslist, etc. I created a contact named "Random People" and I add numbers that I don't want to ring my phone to that contact. Next, I created an audio ringtone file that contains one second of silence, added the file to my iTunes library, sync'd my iPhone, and I assigned the silence ringtone to the "Random People" contact. Now, phone calls and texts from those people do not disturb me or my family at any hour of the day. Alternatively, I could make silence the default ringtone and assign a real ringtone to all of my contacts, but I still want to give unknown numbers the benefit of the doubt for now.
Just download the ringtone file to your computer, add it to your iTunes library, and sync your iPhone.