Custom Fields and Meta Boxes are essentially the same, they allow you to store extra data/information in the postmeta table in the database. The data is stored in a key/value pair. And are attached to the post or page by id. Using the add_post_meta
function.
add_post_meta($ID, 'name_of_data_to_store', 'value_of_that_data');
The key difference is that Custom Fields are native to wordpress so each post/page has them built-in.
But if you want create a Theme Options page you probably will want to use Meta Box to create the same results as Custom Fields provide natively.
For example, if I'm going to create a custom post type called "Movie" with additional fields of "Actor", and "Genre", what would those additional fields be called?
Actor and Genre could be the Taxonomy or ways of grouping items together wordpress by default has a few called Category, Tags, and Link Categories
more information on taxonomies found here.