Or baemaps if you're typing too quickly
First question:
-
All teh works
Then desktop GIS is for you! Go ahead and find every single background layer you could ever think of and download it! Parks, roads, cemeteries, buildings, streams, water bodies, railroads, wetlands, parking lots, forests, farms...
Now load them all up in your desktop GIS of choice (who are we kidding. It's ArcGIS). Style away! Don't forget to think about scale ranges. So style each thing for each scale range!
Not keen on GUIs? Then grab an old dusty copy of Tilemill, load up each of your layers per usual, and then start writing CartoCSS. It's fun!
After the simple task of dowloading and styling the entire world's data, publish! There are Esri and Mapbox and OpenLayers and all sorts of ways to serve up the tiles. -
Not much work
Ah, now we're talking. Mapbox or Mapzen have done 90% of the heavy lifting for you. Grab one of their vector tile OSM endpoints, style using CartoCSS or Mapbox GL-JS, and put that style endpoing in your map. Mapbox Studio even gives you several beautiful defaults to start from. -
Even less work
Beautiful! Hop on to CartoDB, upload your dataset, style it, and plop it on top of an existing OSM basemap. Use that share button and you're done!
I dunno, maybe there are other things to consider. What's the goal of the map? Who is the user? What's the medium? These things might change your decision.
What also matters a lot: does it have to be a global basemap? For some people that's built-in to their assumption of the word "basemap". But in many cases you only need a basemap for a small part of the world. In that case it makes data wrangling much easier, and you have many more hosting options.
If you need a global basemap, however, it's really really hard unless you use Mapbox or Mapzen. It's a lot of data!