$this:
Refers to the current class. Only used in classes that are instantiated, meaning not in static classes. Static classes use "self".
$CI =& get_instance();
$CI is the CodeIgniter super object. All classes loaded though the CI Loader end up being usable through the super object. The super object is more or less a "service locator".
Special Note:
It happens that when in a controller or model, the controller or model has access to the CodeIgniter super object through $this. It may seem confusing, but that's why your controllers extend CI_Controller, and your models extend CI_Model.