It's kind of a loaded question because in order to solve the problem, you need to understand the concept of
exposure.
On Auto (including pre-programmed modes), the camera picks the settings. If you move out of Auto, in certain modes, like Program you can pick the settings.
Graininess in digital photography is known as Noise. The higher the
ISO, the more noise you get. The reason you're getting a lot of noise is because your camera is increasing the ISO in order to capture enough light to get the shot.
The biggest problem is that these types of shots (low light, no flash) are difficult with almost all point and shoot cameras.
There are a few things you could try. You may need to experiment a bit. YMMV.
Go to Program mode which is like Auto but you can adjust settings. Keep the ISO on its lowest setting that will give you the shot. You may need to use a small tripod or something else to keep the camera extremely still for this, otherwise you're likely to get blur since now the shutter has to stay open longer (see triangle illustration in first link above).
Use a flash.
Get the shot however you can, but run it through Noiseware software which will decrease the noise. This is a nice program to have, but you'd hate to have to run
all of your pictures through it in order for them to look halfway decent.
Check out the
Canon S3/S5 IS thread. You will find helpful information there which will be similar for your camera.
Hopefully others will chime in that can maybe explain it better of have other ideas for you. Good luck.