Did you know that select lists actually have two values per entry? There's a "Displayed Text" (which is what the end user sees on the screen), and there is also a "Submitted Value" (which is what is submitted to the server when they submit the form).
Most of the time, and by default, they are the same value, so what the user see's is what you submit to the server, but it is often very useful to set them to different values.
For example, let's say we have a select list called "Donation Amount" with these three options displayed:
"Make a HUGE Impact ($1000)"
"Mage a BIG Impact ($100)"
"Make an Impact ($10)"
Behind the scenes we don't really want the words saved in our database, we just want the number associated with each option (e.g. 1000, 100, 10), especially if this is a payment form and we want an easy way to determine their donation amount. The way to do this is to enable "Assign Custom Values" on the select list using this checkbox:
Using this option we can save the values we are interested in saving, while still showing the users a user-friendly label. This is also very helpful in a payment form scenario where you just want a drop list of options shown and want this drop list to specify the "Total Price" that the user should pay, rather than using "Calculated Fields".