http://msdn.microsoft.com/en-us/library/aa292197(VS.71).aspx
The primary goal of unit testing is to
take the smallest piece of testable
software in the application, isolate
it from the remainder of the code, and
determine whether it behaves exactly
as you expect. Each unit is tested
separately before integrating them
into modules to test the interfaces
between modules. Unit testing has
proven its value in that a large
percentage of defects are identified
during its use.
http://msdn.microsoft.com/en-us/library/aa292128(VS.71).aspx
Integration testing is a logical
extension of unit testing. In its
simplest form, two units that have
already been tested are combined into
a component and the interface between
them is tested. A component, in this
sense, refers to an integrated
aggregate of more than one unit. In a
realistic scenario, many units are
combined into components, which are in
turn aggregated into even larger parts
of the program. The idea is to test
combinations of pieces and eventually
expand the process to test your
modules with those of other groups.
Eventually all the modules making up a
process are tested together. Beyond
that, if the program is composed of
more than one process, they should be
tested in pairs rather than all at
once.
Check sites for more information. There is plenty of information out there as well from sources other than Microsoft.