First, keep in mind that you don't want to use a cleaner that is going to wet the headliner too much because it will start to come down by loosening the glue that holds it up. Preferably, you want to use something that does not contain a lot of moisture. I like to use Detail King's Spot Shot. It is a foaming cleaner that I spray onto a MF towel and then wipe onto the headliner. It works wonders on stains (not only headliners, but carpets also), and does not produce alot of moisture. I am sure others will have different options that work well for them. You can also do a search for "Headliners" and you will get a ton of posts on this subject.