Use location-awareness apps to set it to a ringtone when you're in the house. If you're on Android, I've had good results with [Locale](https://market.android.com/details?id=com.twofortyfouram.loc...). If you're on iOS or something else I have no idea.
Interesting, and I am on Android. But the reason I keep it on vibrate is to stop it making noise every time I get a low-priority notification. What I want is for it to ring for calls and text messages, but only vibrate for emails and facebook notifications.
Facebook: If you're using the official app, go to the main melu screen, menu button, settings, and notification controls are pretty much the bulk of the prefs.
Email:menu button pretty much anywhere, 'settings' (it's in the 'more' section if you're looking at an e-mail, then if you have multiple email accounts you tap on one. Though I don't see anything that explicitly says "make noise/vibrate/notify in menu"; all I see is "Email notifications" which I have turned on - and all I ever see is status bar notes and a trackball color flash.
I'm using CyanogenMod 7.1 on a Nexus One, things may be different for you. Especially if you're using a carrier or manufacturer branded ROM.
There's probably some way of doing that, I guess.