an addon domain is just as it says a domain that you have added to your account.
so rather than have say 4 domains with 4 separate control panels like
domain1.com/cpanel
domain2.com/cpanel
domain3.com/cpanel
domain4.com/cpanel
where you have to remember usernames and passwords for each you can simply have
domain1.com/cpanel
and then add the other 3 domains as addon domains where you can control from the same control panel and same FTP etc.
a subdomain is simple a directory of the main domain
domain1.com
so you could have a sales site that would be
domain1.com/sales or sales.domain1.com