Thanks to Paul Robinson of return-true.com who helped me work out the following working code. It turns out the variables were not properly defined.
<?php
$catslug = get_post_meta($post->ID, 'catslug', TRUE);
$cat = get_post_meta($post->ID, catslug, TRUE); ?>
<?php query_posts( 'category_name=' . $cat ); ?>
<?php while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php endwhile;?>