Using the settings already baked into iOS 6 you have three options of ringtone alerts. It is possible you could get more customization if you jailbroke it.
- If you have the silence switch (on the side of the phone) off, then there will be a normal ringtone and vibration.
- If you have the silence switch on (with the red showing), then there will be no ringtone, and only vibration.
- If you enable Do Not Disturb, then there is no ringtone, and no vibration (see below).
You can enable Do Not Disturb by opening Settings, and switching on Do Not Disturb. You can customize it by going to Settings > Notifications > Do Not Disturb. By default, calls from your Favorites will not be silenced. This will need to be changed to "No One," in order for there to be no calls. Also you will need to switch off Repeated Calls.
Note that you can schedule Do Not Disturb also.
The only thing that isn't possible with iOS 6 (non-jailbroken) is substituting a different ringtone when it is on silent. The silence switch turns it off altogether.
Also keep in mind that this will not affect alarms. Alarms are quite stubborn and will go off pretty much no matter what.