Others have already pointed out good enough references to begin with. I'm not listing a true Dummy's guide, but rather some pointers from the Unicode Consortium page. You'll find some more nitty-gritty reasons for the usage of different encodings at the Unicode Consortium pages.
The Unicode FAQ is a good enough place to answer some (not all) of your queries. 
A more succinct answer on why Unicode exists, is present in the Newcomer's section of the Unicode website itself:
  Unicode provides a unique number for
  every character, no matter what the
  platform, no matter what the program,
  no matter what the language.
As far as the technical reasons for usage of UTF-8, UTF-16 or UTF-32 are concerned, the answer lies in the Technical Introduction to Unicode:
  UTF-8 is popular for HTML and similar
  protocols. UTF-8 is a way of
  transforming all Unicode characters
  into a variable length encoding of
  bytes. It has the advantages that the
  Unicode characters corresponding to
  the familiar ASCII set have the same
  byte values as ASCII, and that Unicode
  characters transformed into UTF-8 can
  be used with much existing software
  without extensive software rewrites.  
  
  UTF-16 is popular in many environments
  that need to balance efficient access
  to characters with economical use of
  storage. It is reasonably compact and
  all the heavily used characters fit
  into a single 16-bit code unit, while
  all other characters are accessible
  via pairs of 16-bit code units.
  
  UTF-32 is popular where memory space
  is no concern, but fixed width, single
  code unit access to characters is
  desired. Each Unicode character is 
  encoded in a single 32-bit code unit
  when using UTF-32.
  
  All three encoding forms need at most
  4 bytes (or 32-bits) of data for each
  character.
A general thumb rule is to use UTF-8 when the predominant languages supported by your application are spoken west of the Indus river, UTF-16 for the opposite (east of the Indus), and UTF-32 when you are concerned about utilizing characters with uniform storage.
By the way UTF-7 is not a Unicode standard and was designed primarily for use in mail applications.