Dan, ok, 20 years of Locksmithing condensed into a couple of sentences...

1st and easiest is to get the code from either the dealer or some other source. The code is then converted using code software into the actual cuts in the key. eg. code may be R3428 cuts are 44387653.
2nd if no code is available you could pull out a lock (door lock) and decode the wafers of the lock (work out if their depths), then either cut a key straight from these numbers or decode the wafers you have and try to determine the correct code for the car.
Once you have the cuts you use the wizard to cut the key.
Ya-Nvr-No,
Standard house type keys can be done the same way, but the wizards are more for cutting to code. eg. you have probably got a filing cabinet or letter box with a number stamped on it. This no is a code no that can be converted into the cuts of the key. Use a wizard to cut the key.
Yes you are right every type of lock/manufacturer has different spacing and depth for their keys. The wizard for house type keys allows you to create and save a file for each different type of key. You have to load the correct file to cut the specific type of key.
Same with the Milled type of car keys. there is a wizard called "Key Profile Maker" that allows you to set the space and depth for each type of car. Then it makes a code for the button. It dosent quite get it right as the start and end of each key usually has to be altered for a specific key type.
Locksmiths cut ALOT of keys to code rather then to sample. for eg imagine a Master Key System in a school or hospital, etc. Each key has to be cut to the exact code (cuts). They cant be cut to a sample.