I use cdrecord personally. Xcdroast is a gui front end to it, which is nice too.
for example to make a data cdrom
the command line example would be like:
mkisofs -o ~/your.image.iso /directory/of/files/you/want/on/cdrom
then
cdrecord -v dev=0,0,0 speed=24 ~/your.image.iso
were dev is the scsi ID of your cdrom burner (traditional ATA standards do not provide the functionality that a cdrom burner needs, so it is nessicary to have a IDE cdrom use SCSI emulation for the extra commands... windows does something similar, I think. But newer stuff has workarounds, I think the new 2.6 will incorporate these work arounds)