ICANN was originally formed in response to The Green Paper which wanted a new non-profit organization to handle DNS. Source
ICANN accredits restrars of domain names. Source
A registrar is an entity that offers domain name registration services to registrants in generic top-level domains (gTLDs) Source
An accredited ICANN Registrar has to adhere to ICANN's RAA (Registrar Accredidation Agreement). Source
A domain reseller is a "third-party company that offers domain name registration services through a registrar but not all are ICANN-accredited registrars." These companies help users find thier domain and purchase it. A reseller must be tied to an Accredited ICANN Registrar. You can become a reseller for anywhere from free (or what some companies claim is free) to $15/mo through GoDaddy, the largest reseller currently. Source