Source address selection must be very irritated; destination address selection gets all the press coverage.
This article will start to redress the balance, by talking about what source address selection is, why it is needed, and how it works. If you want the nitty-gritty, check out RFC 6724 (which obsoletes RFC 3484).
ULA (Unique Local Addresses, or Unique Local IPv6 Unicast Addresses to give them their full name) are IPv6’s equivalent of IPv4’s “private” addresses.
The idea is to append a random 40 bits to the reserved ULA prefix fd00::/8, thus building a /48 that you can call your own. You can use this /48 wherever and however you like, with the sole proviso that it must not be routed on the public Internet. The ULA space is defined in RFC4192 (http://tools.ietf.org/html/rfc4193).