How can I get rid of a stain in my ceiling that was caused by a leak in my roof?
You need to use a stain blocking primer on the stained area. Use either an oil base primer, like Zinsser Cover Stain or Kilz, or a shellac primer. Both of these alternatives are available in spray cans as well as quartz or gallons.
After priming you can either repaint or touch up the ceiling.