My lab is entirely on vm's. I even have the De-ICE disks loading as seperate vm's. The great thing about using vms is that if I fubar a machine I can resotre it form a snapshot. I can also clone the vms and quickly setup multiple machines in the lab.
So my setup is basically this:
Old old crap I got for free from a client who didnt want to paid to dispose of it; Dell PowerEdge 2600 running Dual Xeon's and a whopping 6GB of ram! on four scsi drives running in RAID 5 for 250GB of space. This doesnt leave much in the way of resources for the vm's but I really just need them to boot. I'm not actually doing any heavy lifting on them.
I also have 4 additions NICs installed in the poweredge as additional interfaces. All of the NICs are connected to a run of the mill linksys wtr54g except one that is dedicated for the host which is connected to my regular network for administation perposes and one that I designate/use as the public interface to the lab.
On it I run Debian with a headless virtualbox install. If I am looking to duplicate or imitate a sm/med business network. I'll setup a vm of untangle, astaro, psense, monowall, making sure that the firewall is on the inteface I decided to use as a 'public interface' and then my other vm's use the other NICs for connectivity (being careful to never use the NIC that is connected to my regular network). For a small to med business setup I usually run Win SMB Sever 2003/2008 using running as a domain controller and with a DHCP server running also. Other services are dependent on what type of business it is.
In my experience small business almost always only have one server and it is doing everything under the sun. Email, web-hosting, Database, file sharing, you name it.
A little convoluted there, but I hope you get some value out of it.