A water stain on your ceiling just below your bathroom is a sign you've got a leak coming from somewhere above. If the leak is coming from your shower, there's a good chance you've got a bad seal caused by a faulty gasket in the drain assembly. Before calling in a plumber for more expensive repairs, try replacing the gasket and resealing the assembly with new plumber's putty yourself.
Remove the screws holding the metal grate to the strainer. Be careful not to let the screws fall down the drain. Remove the grate.
Place a pair of tongue and groove pliers just inside the opening of the strainer. Open the pliers until they press against the sides of the flange. Then, as you're exerting force against the sides of the flange by holding the pliers open, turn the pliers counterclockwise to unscrew the strainer from the drain flange.
Pull off the old pumber's putty and other gunk from the strainer. It's a somewhat messy job, so have rags or paper towels handy. Clean the the threads on the drain as well. You may need a wire brush for putty that's caked on.
Push the shower drain to the side with your finger. You'll reveal a rubber gasket that seals the drain. Pull the rubber gasket out and discard it.
Slip the new gasket into the same spot as the old.
Coat the threads and underside of the strainer thoroughly with plumber's putty.
Thread the strainer back onto the drain flange. Once you can't tighten it any more by hand, use tongue and groove pliers to tighten another quarter turn or so. Be careful not to overtighten.
Wipe off the putty that seeped through the seam with paper towels or rags. Allow the putty to dry 24 hours before using the shower.