I use "Simple Sound Profile Widget"; I set up a "silent" profile that turns all volumes (ring, notification, media) down to zero.
I also have profiles called "quiet," "vibrate," "normal," "LOUD," and "message beep off" -- I use that last one at night when I want to hear it if someone calls, but I don't want text messages waking me up.