Very good post, samualt, and welcome to the forums! You are right on track. I know software can be a little confusing, because when I was first starting I had the exact same questions. Here's my brief confirmation, using my experience as the example.
CAD software is used to draw/model the part you want to machine. In my case, I use AutoCAD.
CAM software is used to convert the CAD drawing into G-code. I happen to use DeskCNC or write the G-code by hand, whichever is quicker.
CNC software is what tells your computer how to control your servos/steppers. I use turboCNC.
So, basically, you model in a CAD program, convert to G-code in a CAM program, and run the G-code in your CNC software to control your machine.