microcontroller vs. System on chip
A microcontroller is a processor that has its program and data memory built in.  These chips are intended for small embedded control applications, so leaving the pins for I/O and not requiring a external memory bus is very useful.  Some microcontrollers have as little as 6 pins, and can do useful things.  Contrast that to a general purpose computing processor intended for a PC.  Those things have 100s of pins in a array and require extensive external circuitry.

As for system on a chip, that is a less well defined term.  Cyprus calls some of their parts PSOC (Programmable System on Chip).  These are basically a microcontroller with small FPGA on the same chip.  Instead of having built in peripherals, you can make whatever you want within the available resources of the FPGA.

In general, I think a system on a chip is a microcontroller with some supposedly system-level logic integrated with it.  Of course the further you try to go into the system, the less likely any one set of extra hardware is going to be useful, so some kind of configurability is very useful.  However, for now "system on chip" is more of a marketing term than anything real.