I ended up doing this using wp_tag_cloud.
global $post;
//Tag Cloud
$cats = wp_get_post_categories( $post->ID );
$args = array(
'category__in' => $cats,
'showposts' => -1
);
$custom_query = new WP_Query($args );
if ($custom_query->have_posts()) :
while ($custom_query->have_posts()) : $custom_query->the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags[] = $tag->term_id;
}
}
endwhile;
endif;
$tags_arr = array_unique($all_tags);
$tags_str = implode(",", $tags_arr);
$args = array(
'smallest' => 18,
'largest' => 18,
'unit' => 'px',
'number' => 10,
'orderby' => 'count',
'order' => 'DESC',
'format' => 'flat',
'include' => $tags_str
);
echo '<div class="tag-top"><h4>Popular Tags within: ';
single_cat_title();
echo '</h4>';
wp_tag_cloud($args);
echo '</div>';