First of all you cannot eliminate noise; all you can do is reduce it to a minimum. The best way to do this is by not getting too much noise on the photo from the start.
Theoretically the trick is quite simple.
Noise on a photograph is the result of the camera sensor heating up; the heat is produced from the instant the camera is switched on and increases with high ISO settings, long exposures and some other minor factors. Also the size of the sensor is of great importance; the small sensors from compact cameras are more easily heating up than the bigger ones from DSLRs.
So what to do to reduce noise; well quite easy; just limit any of the listed factors as much as you can.
In the optimum case you'll have a DSLR, a low ISO setting (100-200) a short exposure and a low outside temperature (I guess shooting in the Antarctic would proof quite useful
Of all these noise intensifying factors, the ISO setting is the biggest one; so always try to use as low an ISO as possible.
Apart from that you'll have to try with different settings to see what works best in the given situation.
If some noise cannot be avoided you can try to reduce it with a post-processing tool of which all known to me were already mentionned in the previous replies; I personally use Neatimage and get quite acceptable results most of the time.