I just use the software that came with my Canon printer. I normally use glossy photopaper, then use a guillotine to trim everything up. Neato do inlay cards etc. and that normally comes with software for the various cards, and which is slightly better than the Canon stuff, but I found that the inlay cards and covers were very expensive doing it that way.
I always use printable CDs, as the stick-on CD labels don't stay stuck for long.
Of course printing at home is OK for small runs of demo CDs, but you'll find it a lot cheaper to have any sizeable run printed professionally. A printing company will probably help you with your artwork as well.
Inkscape is very good (and free) for that kind of thing. Takes a bit of learning and you need to set up a template for whatever paper you have but you'll get good results. I recently used it to print a sheet of stickers for demo cds, found the Avery equivalents in five minutes with google and imported the PDF into Inkscape.
My Canon Pixma has a CD tray and some proprietary software for printing CDs, not very flexible but it does the job well.