|MadSci Network: Physics|
You've got the right idea! We see rainbows when the Sun's light is both reflected and refracted (bent) by water vapor in the air.
Here's what happens: imagine you're standing with the Sun at your back looking at a water drop. As a light ray from the Sun hits the drop, it is bent inwards, toward the center of the drop. It bounces off the back of the drop (coming towards you again) and then refracts again on its way out. As a result you see the light ray appearing to come from some point behind the drop, that is, on the opposite side of the sky from the sun (which is where you see rainbows!)
But what about the colors? It turns out that each color of light is bent a little bit differently - red light is bent the least and violet the most. So, each color appears to be coming from a slightly different place behind the water drop.
The rainbow is circular because only drops located at certain places on the sky (in a circle around the point opposite the Sun) redirect the light exactly back toward your eye. It's only the light from those drops that you see, and hence you see a circle.
See also the MSN answers to these questions:
Try the links in the MadSci Library for more information on Physics.