What exactly is the purpose of settings_fields()?

Very simply put it puts some hidden fields into the form on an option page.
Those hidden fields are then used to check if the request made to the browser are valid. For some more in dept information you could read the Codex about WP Nonces