Simple answer is:
1) Add-on Domain allows you to host an additional domain name. So if you signed up for mydomain.tld, an add-on domain also allows you to host myotherdomain.tld. You would access your add-on domain by using an URL of
http://myotherdomain.tld
2) A subdomain is one that is tied to your hosted domain name. So if you wanted a subdomain for a photo gallery, you could create a subdomain named "photos". You would access the subdomain by using the URL of
http://photos.mydomain.tld
If you look at the cPanel filemanager, both the Add-on Domain and the Subdomain will appear as subdirectories of public_html