list pages by custom_field?

Not sure if this help. If you use normal wordpress loop to query post or pages then you can do this by using query_posts

You need to place a line of query_posts before the loop start and it might look something like this ( you might need to add some more parameter for getting only pages in your case )

query_posts($query_string. '&order=DESC&orderby=meta_value&meta_key=last_name')

Ref: http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters