The thing that creates noise is not enough light.
You can think of your image has having a constant amount of noise (this is a big inaccurate over simplification, but it helps understand the issue), when you are photographing something nice and bright the sensor captures a lot of data and it completely overpowers the noise.
On the other hand if you are photographing a completely dark scene there is not data at all (because no light is hitting the sensor) and you are left with noise only.
ISO raises the brightness level of everything, both the real data and the noise - so high ISO images tend to be noisier.
However, in most cameras the ISO amplification is done early in the process, before some of the noise have a chance to get in - so an high ISO image will have less noise than a low ISO image that is brightened up in post processing.
So - to reduce noise:
Try to get more light into the camera - use a wider aperture, slower shutter speed and where appropriate flash.
Use the lowest ISO that get's you the correct exposure - that is, prefer lowering the ISO and slowing the shutter to using an high ISO, but if you have no other choice using high ISO is better than increasing brightness in post prossesing
And finally, there are some excellent noise reduction programs you can use in post processing