How do I get clean output (without menus, header, footer, etc.) in Drupal?
Just print it from your page callback rather than return it. Drupal will only invoke the theme wrappers for the html/page when you return something from your callback.

function MYMODULE_some_page_callback() {
  print theme('my_theme', array('html' =&gt; $html);
}


The other method is to set an explicit delivery callback for your menu item, to be used in place of the standard drupal_deliver_html_page() method. See the hook_menu() docs for more details.