The WP Postviews plugin is one of the most used to record post views.
Then you can sort by amount by;
<?php if (function_exists('get_most_viewed')): ?>
<ul>
<?php get_most_viewed(); ?>
</ul>
<?php endif; ?>
Or pass in the variables to the URL:
http://example.com/?v_sortby=views&v_orderby=desc
Or even run a custom query that sorts by the post_meta value.