A microcontroller is just a small CPU which is designed to be utilized in dedicated hardware projects and appliances.
Your DVD player, for example, probably has a microcontroller instead of a "normal" CPU like a Pentium IV.
There are quite a few options for interfacing with microcontrollers. First, you have to define which microcontroller you want to interface with. This usually means that you have to start by defining your project requirements.
One way to get a "feel" for what a microcontroller really is would be to read the
PIC16F84 Tutorial. The PIC16F84 isn't special, it's just a random microcontroller to begin by looking at.
Once you pick a project and a microcontroller, then you will have a range of development tools available to you in various languages (Assembly, C, BASIC, etc...).