Is it possible to use iPhone's hardware vibrate button to toggle "silent" / "vibrate only" instead? I don't like having my phone ring. I just use two modes: vibrate only (when it's in my pocket) and no vibrate and no ring (when it's on a table/dock in front of me, and I'll see if something happens just by seeing the screen turn on).

Is there a way to use iPhone's hardware vibrate button to accomplish toggling between these two modes? Right now it is not useful to me. 

I tried turning the volume to the minimum and treating the ring mode as the silent mode, but the volume doesn't really go all the way down to zero, and it affects the alarms.

What can I do?
You could set your phone up to vibrate on silent and then configure your sounds to be short silent ringtones. Then when your phone is in "normal" mode it will play the silent alerts (The Sounds of silence... Yeah shouldn't try singing) instead of ringing.

Unfortunately you'd have to set multiple alert sounds (SMS/iMessage, Ringer, etc.) but here's a link to a step by step plus sample ringtones: http://www.iphonefaq.org/archives/971156