I don’t use widgets for this as you can easily create one and use get_comments( $args );
for the most cases for example:
10 last comments by page is :
$args = array(
'post_id' => $post_id,
'number' => 10,
'status' => 'approve');
$comments = get_comments($args);
foreach($comments as $comment) :
echo($comment->comment_author . '<br />' . $comment->comment_content);
endforeach;
but if you are not into the coding stuff you can use Wizzart – Recent Comments
plugin that does pretty much what you need.
Update
following comment: to get 10 last comments of a category and excluding the admin comments i only know of a custom sql query to get that results, something like:
global $wpdb;
$cat_id = 4; //category id
$number = 10; // number of comments to get
$filter_admin = " AND user_ID != '1'"; //exclude admin comments or any user by id
$comments_types = "AND ( comment_type != 'trackback' AND comment_type != 'pingback')"; // get only user comments
$term_rel = $wpdb->term_relationships;
$comments_filter = "JOIN (".$term_rel." JOIN ".$wpdb->term_taxonomy." ON (".$wpdb->term_taxonomy.".term_taxonomy_id=".$term_rel.".term_taxonomy_id))";
$comments_filter .= "ON (".$wpdb->comments.".comment_post_ID=".$term_rel.".object_ID)";
$comments_filter .= "WHERE ".$wpdb->term_taxonomy.".term_id=".$cat_id." AND ".$wpdb->term_taxonomy.".taxonomy='category' ";
$comments_filter .= $comments_types;
$query = "SELECT * FROM $wpdb->comments ";
$query .= $comments_filter;
$query .= " AND comment_approved='1'$filter_admin";
$query .= "ORDER BY comment_date DESC LIMIT $number";
$comments = $wpdb->get_results($query);