First you should perform an analysis of you machines to see if they make good candidates for virtualization (monitoring performance to make sure you don’t virtualize a machine that ends up eating up all of the system resources on the host and causing the performance of your other machines to suffer). There are different tools for this (VMware makes one called Capacity Planner).
The rest is EXTREMELY dependent on what software you use for your virtual machine host.
Once that is done you will setup your virtual machine host. After that you will either convert your machines over to VM’s or build new servers and migrate the different roles to them. For your domain controller I 100% recommend building a new one and migrating it over, if not it can cause a bunch of headaches that you will have to go through fixing up.
To do this on the cheap, either go with VMware ESXi (which is free), but it is very specific as to what hardware it can run on (check out this link). If you want a more white box virtual machine host try Hyper-V server from Microsoft, which is again free.
There are so many options that I can’t list them all out here. Do a bunch of reading and see what software is out there and decide which one you want to go with.
Good luck with the project