Microcontrollers are used for a small set of tasks, they have many internal peripherals like memory (flash, RAM and EEPROM), analog to digital converters (ADC), hardware real-time clock and calendar (RTCC), compare and pulse width modulation outputs (PWM), configurable input / output pins. They also have a wide variety of internal hardware connectivity modules, like CAN, USB, UART, LIN, SPI, I2C, Ethernet. Not all the microcontrollers have all these features, some have a few, some have all. With all these things (and more), microcontrollers give the possibility to build low cost and highly integrated devices with out much complexity on the design process.
Microprocessors are for a wider set of general purpose functions. They don't have the same microcontrollers peripherals because they are designed for high processing capability. So, to build a system with a microprocessor, there will be the need to add external modules, depending on the device purpose (more complexity on the design process). Today's microprocessors have several cores (more than one microprocessor inside the chip) and run at very high speeds like 1, 2, 3GHz, while most microcontrollers run at 4, 16, 32, 80MHz consuming less energy in the process.
I work with both of them :)