What's the best way/module I can use to automatically create subsites, like drupalgardens.com.
Is there a module to do it? Can I use drush for this?
If you want something like drupalgardens (aka new sites), you can use drush site-install, but you will still need to create the site directory and what not.
If you have a basic template for the new sites you should probably create an install profile or feature module and have it set everything up.
Not sure about your exact requirement..suggest you could also try using domain access module. You could use the same database and restrict or share your content across the domains created, restrict users to content of a specific domain, provides options for URL aliasing and redirects, it also has a feature named domain user that lets creation of a domain based on username. And all this does not involve creation of any additional settings.php or sites dirs.