I've used Crayon, Testors model paint, and nail polish.
Yes, I said nail polish.
Believe it or not, I've found that the nail polish actually works pretty damn well for a "permanent" color fill, since it really isnt affected by heat or the solvents most of us use to clean - but it can still be removed with acetone based nail polish remover and a little elbow grease if you want to get it out.
Testors is nice because it flows well and is easy to put on...but the caveat is that gun solvents will remove it pretty quickly if you're not careful. The paint has to have had a couple of FULL days to really dry/cure before it becomes durable...but after that, it works pretty well.
They also make lacquer paint stick that you can use for this purpose, though I've never been able to find it locally and since I've had sucess with other easier to obtain methods, I've never really felt compelled to pay $7 shipping for a $3 paint stick.
I started with white crayon on my XD40, then later switched to nail polish because it was melting and made a mess. Sold that gun as it was - the buyer really liked it with the white accents.
My AR right now is currrently a hybrid of all three methods, lol...The rollmarks are white crayon, the SAFE mark is testors paint, and the FIRE mark is red nail polish. I will tell you that white crayon in deep rollmarks like AA logo turns out BRIGHT white, it really pops. Some like that, some dont. I'm toying with the idea of taking the crayon out completely and going with Testors again.
I'll take a pic later and post it.