The first and simplest type of operation is bitmap relief carving. This is for working with photographs... jpeg and bitmap images. The software converts the image to grayscale. Then you define the maximum and minimum depth of cut, and the software creates the tool paths to carve a 3D rellief carving of the images. The 3D lithophane is an example of this type of carving. Vectric's PhotoVCarve works very well for this. (Other Examples)
The second type of operation is called 2.5D - pocketing, profiling, drilling, and text engraving. These are basically flat features in flat parts. With this type of operation you can make ribs for your model airplane wings, coasters, Christmas ornaments, wooden clocks, parts for your quadcopters, signs and plaques, and so on. At only $150, Vectric's Cut2D is the easiest way to get started with these types of parts.
The third type of operation is a 3D carving. This is for more organic shapes with curved surfaces. To do this type of operation, you use a ball end mill. The amount of detail that you get is determined by how small of a tool that you use on the finish pass. There are limitations to this type of carving because the tool is always perpendicular to the table. Most 3D carving software will allow you to do 2-sided machining, and also to slice your model into manageable peices that you can glue together to make objects that are much larger than you CNC router's work envelope. MeshCam and Cut3D are both great 3D carving programs.
All three of these types of software programs will export g-code that can be run on any CNC router.