There’s a good article on MSDN on the Profile feature of ASP.NET 2.0.
From the introduction:
Profile provides a simple way of defining database-backed user profile information. With a few configuration file entries, you can quickly build a site that stores user preferences (or any other data, for that matter) into a database, all with a simple type-safe interface for the developer. Profile looks and feels much like Session state, but unlike Session state, Profile is persistent across sessions. Profile is tied into the ASP.NET 2.0 membership system so that data for authenticated clients is stored in association with their real identities instead of with some arbitrary identifier. Anonymous clients have an identifier generated for them stored as a persistent cookie, so that on subsequent access from the same machine they will retain their preferences.