UpdateProfile comes with some default properties you can override. They are:
The name of the form submit button that triggers the submission.
A comma-separated list of fields to validate, with each field name as name:validator (eg: username:required,email:required). Validators can also be chained, like email:email:required. This property can be specified on multiple lines.
If true, will redirect non-logged-in users that visit the page with the snippet to the Unauthorized Page.
If true, the page will redirect to itself with a GET parameter to prevent double-postbacks. If false, it will simply set a success placeholder.
The field name for the email field in the form.
A comma-separated list of 'hooks', or Snippets, that will be executed before the user's profile is updated but after validation. Also can specify 'captcha' as a hook.
A comma-separated list of 'hooks', or Snippets, that will be executed after the user's profile is updated.
If set to a column name in the Profile, UpdateProfile will attempt to sync the username to this field after a successful save.
Whether or not to set any extra fields in the form to the Profiles extended field. This can be useful for storing extra user fields.
A comma-separated list of fields to exclude from setting as extended fields.
The prefix to use for all placeholders set by this snippet.
The UpdateProfile Form
Then, below this, add in the following HTML (removing any fields you'd like) to be the form. Feel free to style it and adjust the markup (just don't change the form field names). This is also found in core/components/login/chunks/lgnupdateprofile.chunk.tpl.