Regarding your original question, there are a couple of separate basic concepts thar you're blending together, which in jargon sound quite different and not very well suited for the ServerFault Q&A format.
The first consideration is to have your IT equipment on premises or not. That in itself already quite a broad topic, the answer depends on the availability, cost and quality of internet connections and the amount of compute and communications capacity you need and your business needs and budgets. Those requirements might dictate on premises or to move the bulk of your IT off-site or leave you a choice.
If you do decide for on-premises, again the amount compute capacity you need will dictate certain requirements. A single server designed for small business (might host a couple of VM's) can easily fit under a desk. But servers typically run 24*7, are loud, require a fair bit of power and subsequently cooling capacity to deal with the heat they generate and are much heavier than the typical office area is designed to sustain. So most servers get moved away from the office floor away from the staff to their own room designed for a different need, similar to other technical area's in buildings (for the HVAC system, elevators, power distribution etc.).
Virtual servers still require hardware.
So you may still need a server room.
If you decide you can take your compute capacity off-site your options much more diverse, you can rent data center space but still operate your own hardware, VM's etc in a co-location facility, rent rather than buy the hardware as in a dedicated server, move away from discrete physical server units of capacity and rent scalable capacity in the form of VM's instead. (Platform As A Service)
Or rather than servers rent/subscribe to services. Don't run an mail server, just order the number of mailboxes you need, etc.