It allows an array to be stored as a string, particularly handy if you need to store data in a manner that does not require a set schema. Let's say I had four options for a plugin:
[list_begin] => <ul>
[list_end] => </ul>
[list_item_begin] => <li>
[list_item_end] => </li>
If I really did not want to create four separate options in the
wp_options table, I could serialize that array (it works for objects too) and write that as one long string to be stored as one option.
Once that is in the table, you can use the unserialize() function to return it to an array for use in your plugin. If you look at the
/wp-admin/options.php page, you will see a good bit of the WordPress internals and some other plugins handle data in this way.