A Profile is a group/collection of a settings and permissions that define what a user can do in salesforce.
A profile controls Object permissions, Field permissions, User permission, Tab settings, App settings. Apex class access, Visualforce page access, Page Layouts, Record Types, Login hours & Login IP ranges.
You can define profles by user's job function, For Example : System Administrator, Developer, Sales Representative.
A Profile can be assigned to many users, but user can be assigned a single profile at a time