The Op-Amp has two inputs and one output. Any voltage fed into the inverting input (V-) will appear as an identical negative voltage at the output. Any voltage fed into the non-inverting input (V+) will appear as a positive voltage at the output. (Note that since the op-amp can output plus OR minus the full voltage applied to its inputs, it has to to be fed with not the normal positive voltage and ground, but with positive voltage (Vs+) and negative voltage (Vs-).) If voltages are applied to both the inverting and non-inverting input, they will be subtracted as one might expect: the output voltage will be the voltage applied to the non-inverting input, minus the voltage applied to the inverting input. Thus the opamp can be used as a math circuit, subtracting two signals. Also, since the opamp is exquisitely sensitive to differences in the inputs, it can be used as a very good comparator. But the opamp can also do much more...
The opamp also has two more interesting electrical characteristics. One, it has very high resistance inputs. This means it draws very little current from the sources feeding the inputs, and consequently will disturb the voltage fed into them only a very little bit. Secondly, it has a very low output resistance. This means it can supply a relatively large range of current to its output with only tiny variances in output voltage. This makes it an ideal "buffer" between stages of a circuit that must not cross-draw current from each other.
One can also cleverly "feed back" some portion (or all) of the output voltage to the inverting input of the opamp like so:
When connected in a negative feedback configuration, the op-amp will try to make Vout whatever voltage is necessary to make the sum of the input voltages zero.
Here, R1 and R2 form a voltage divider that halves (or quarters, or tenths, or whatever) Vout before feeding it back into V-. This, combined with the "need" of the opamp to have its inputs sum to zero, means that any voltage sent into the non-inverting input will be multiplied by a factor of 1+(R2/R1) at the output. If the ratio of R2 to R1 is large, even the smallest difference in voltage between the inputs can be magnified thousands of times. Thus the opamp can also be used as a very sensitive amplifier. (However, the opamp cannot multiply the voltage beyond the limits of its Vs+ and Vs- inputs.)
This idea, in turn, can be very quickly applied to do some rather wonderous things. Voltage controlled current amplifiers (and current controlled voltage amplifiers) become possible quite quickly. Analog differentiation and integration can be performed on voltages.
Even cleverer applications of feedback lead to Schmitt triggers, which are circuits that have a "dead zone" and do not change their output until their input voltage passes outside the dead zone. Very handy for building noise tolerant systems.
And finally, by using passive low or high pass filters along the feedback path, we can design active filters that not only filter the input signal, but also amplify it at the same time! (We do add a little noise a bit by doing this - that's the price you pay for any kind of amplification.)
Opamps are incredibly versatile and useful electronic components that deserve to be in any reasonable engineer's toolbox. They are easier to use and more stable than transistors, and capable of some truly mind-blowing capabilities with just a few added resistors. They are also insanely cheap. Radio Shack, king of the unnecessary markup, sells a chip with 4 opamps on it for $1.49. See the Wikipedia page on opamps for more, or just do a Google search.