There won't be an app for it, because apps aren't allowed to change system settings (this removes tons of potential problems, as much as it'd be useful sometimes).
I set mine to airplane mode before sleeping, and don't touch the volume controls. That means no emails, messages, etc. and therefore no sound, until the alarm goes off.
It also means no phone calls too though. My landline is right next to the bed, if it's urgent enough to wake me up people can call that. In the middle of the night, I figure I'm only going to get 2 kinds of call: an emergency (people would naturally call the landline number for this) or drunk-dialling friends (in which case they'd call the mobile, and I don't want to talk to them 😀)