Hello Ramesh, I took this from documentation on "Working with contacts" as I feel it is pretty relevant to this:
Contacts represent visitors of the website and store marketing-related information about them. Contacts cover both anonymous visitors (identified by an IP address or an HTTP cookie) and regular registered users or customers (identified by username or e-mail address). The system automatically gathers data about contacts based on the actions and input of the associated users.
So essentially what this is saying is that Contacts are stored for marketing-related information. They are used to track activity, send email marketing newsletters, you can put them in groups and send information to the group. It is used in web analytics data as well, basically it is really use for online marketing / web analytics only. The are used in the calculation of many of the reports, especially in all variant testing, i.e MVT / AB testing.
A user someone who has registered on the site and is able to log into Kentico. Users can be placed into roles and given permissions / ui personalization can be setup for them as well. It is how we get MembershipContext and the only way to login to a page that requires authentication. Users can have contacts attached to them, this is done by setting the Contact's "ContactOwnerUserID", you can even generate a contact for each of your users if you would like to track the web analytics and send onlinemarketing mails to them as well.
Some documentations that may help you get a good idea of how it all works:
Working With Contacts
Hope this helps