If your speaker suddenly stops working (but you still get notification sounds), reset the language from English to something else.
Once the change is in place, set it back to English, and your speaker should be back on!
No idea what the glitch is, or why this fixes it, but it does!
UPDATE: If the fix above doesn’t work, check and see what version of iOS you’re running.
Apparently, iOS6 has device mute connected directly to the dock connector, and if there is the tiniest bit of corrosion on it, or some kind of grit in there, it can “auto mute” your device.
Try cleaning the dock, replacing the charger, or updating to the latest iOS. – P