User defined domains
Drupal can handle multiple sites very well. In a raw way without any modules you can use the multisite features of drupal. This can be done by creating submodules under sites for each of the sites. 

When it comes to modules there are couple of them that deals with subdomains and multiple sites. 


Virtual Sites
This kind of automates the Multisite configuration for drupal. You can create additional domains and subdomains. 
Subdomain
This one is mainly used to create a subdomain and place contents under that subdomains. For example all contents of a group can be placed under the groups subdomain.
Domain Access
Domain access is used in scenarios where you want to share contents between your domains and subdomains. You can assign contents specific to a domain or have the same content appear in multiple domains. Assign admins per domain etc. This is used for affiliates sites. A use case would be a main rental site with subdomains for each city. 
Aegir 
This is not a module. This is a complete hosting solution build for drupal. This is a hosting profile. You would install it on a dedicated or virtual servers. You can create multiple sites from with in Aegir some thing similar to what you do on a reseller control panel. If you want to restrict the subdomains to a single domain then you can use the module Hosting Subdomains


So it ultimately depends on your use case.