Displaying a table from local menu (Drupal 7)
From a page callback you need to return something that can be run through the render() function. This will either need to be a string, or a properly formatted render array. 

You can use:

$block = theme('table', $table);
return $block;


or

$block['content'] = array(
  '#markup' =&gt; theme('table', $table)
);
return $block;


or even

$block['content'] = array(
  '#theme' =&gt; 'table',
  '#header' =&gt; $header,
  '#rows' =&gt; $rows,
  '#empty' =&gt; t('No terms found')
);


The last method is probably the most preferable in terms of extensibility, as it potentially allows other modules to alter the table before it's rendered. Using either of the other methods will render the table into an HTML string, and other elements in the system will no longer be able to alter it before it's displayed.