The license master can be any splunk instance to which your cluster can connect, normally search head or master (splunk doesn't recommend to user indexer node). We used CM as license master(physical machine) before but now moved to a separate license master which is out of our cluster infrastructure as part of infra movement not because of performance issues.
As per http://wiki.splunk.com/Things_I_wish_I_knew_then , it's recommend to have a dedicated instance for deployment server and license master.
Dedicated Deployment Server and license Master - If your install grows beyond just a single Splunk instance (talking indexers & search heads here, not forwarders), set up a separate server to be a license manager & Deployment server. A VM is fine for these purposes, and can actually be a benefit to be on a VM. You can even use the tarball install to put these multiple instances on the same box/VM. Say one in /opt/splunk, one in /opt/deploymentserver, and one in /opt/licenseserver. Run them on different ports of course.
If you are not planning for a dedicated instance for this, you can use a search head or CM as license master