Which generation iPod Touch are you using? Only 2nd and 3rd generation devices have internal speakers.
If you are using a 2nd or 3rd gen, try pressing up on the volume switch when the headphones are unplugged. The iPod remembers the volume settings for the speakers and headphones separately, so if you plug the headphones in, volume is set to the level it was the last time headphones were plugged in. The same goes for the speakers.
Thanks for the reply. The speaker worked when I first bought it Last week from apple store so I must have changed something. I tried what u suggested but still can't get it back. Any other thoughts?
I just found this thread and it solved the problem for me.
Quote from YarmSaysSo:
Ok I fixed it this is how you do it: Go to Settings>Music>Slide Sound Check to "OFF" - then turn the Itouch off - you do this by holding down the sleep button for 3-5 seconds (the button on the top on the opposite side of the jacks) - then a red thing will pop up and you slide to power off. Wait a couple minutes then turn it back on with the same button. Worked for me hope it works for you!