To expand a little on what Beepster said, the quantize function just shifts all the notes to the nearest user-defined increment. For example, if you quantize something to 16th notes, it just takes every note and moves it exactly to the nearest 16th subdivision. So if your notes are a little off, it'll make the timing perfect.
However, you may not want perfect, and like Beepster says you can shake things up a bit by using the "humanize" or "randomize" function. For example, if you use Cakewalk's quantize (the MIDI effect, not the one in the "process" menu) it gives you the option to randomize the quantize to a percentage of your choosing. If you want your beats to be tight but not robotic, you can set the randomize function at a small number like 1% and it will introduce a little timing variation - just a few ticks, not enough to throw things out of time.
You can also use the quantize function to change the feel of a beat. For instance, I often write stuff that has a triplet feel, but most of the MIDI beats I have are straight 8ths or 16ths. If you quantize it to 8th or 16th triplets, it totally transforms the beat into a triplet feel. You can also add "swing," which gives the notes a dotted feel.