Microcontrollers are software-controlled devices which provide a convenient way to perform complex tasks like data collection, reporting and control in a compact, tightly integrated package.
There are a few general differences between microcontrollers and microprocessors:
Microcontrollers generally use internal flash/ROM/RAM and lack external address and data buses. Microprocessors rely on external memory, and have limited internal memory (usually only cache).
Microcontrollers generally have a large variety of input/output peripherals built-in, like general-purpose I/O lines, analog-to-digital converters, dedicated UART hardware, etc. Microprocessors generally do not, since most of its I/O functionality is used for addressing external memory (or memory-mapped peripherals.)
Microcontrollers are generally optimized for very low power consumption, and have computational trade-offs because of this (many have no floating-point capabilities, no pipelining, etc.). Modern microprocessors perform faster than microcontrollers, and require much higher power budgets.