Any geometry you can design, can be 3D printed. CNCs, you need to think about DFM , for instance, I can make a perfectly square hole that bends 90 degrees at the bottom on a 3D printer, but not on a CNC.
3D printer will be less mess and cheaper to operate (filament costs less than tools and metal).
A CNC will give you a lot more freedom in what materials you can make stuff from, and will give you better tolerances on the parts you make.