“How do I remove the default widgets that come with WordPress?” — I heard this at least five times in the last two months. The solution is to use the Remove Default Widgets plugin that I wrote earlier this year.
It’s better than using
unregister_widget for each registered widget in your functions.php file (or wherever), because a new version of WordPress might ship with a new default widget, which is not in your list, rendering the method non future-proof. Also, why waste the time (and CPU cycles) and register a bunch of widgets, to unregister them soon after?
The plugin I mentioned simply tells WordPress to skip default widgets registration. All of them. Even if WordPress 3.6 adds twenty more widgets, this plugin will still work.