I found this excellent article below to help you with your situation.
Step #1: Determine where the roof is leaking.
You can't assume that the wet or stained spot in your ceiling is directly below the roof leak. Rain water may follow a rafter some distance before dropping to the ceiling where it shows.
If you have access to the attic space, where the rafters and roof boards are exposed, go there first, with a flashlight or trouble light. Do this while it is still raining, if possible, so you can positively identify where the water is entering. (Note that this trip to the attic may also reveal water coming from condensation or an overhead water pipe, rather than from a leak in the roof.)
Usually, the leak will be next to a chimney, roof vent, or where a wall and roof meet. Which is to say, it will indicate old or improperly installed flashing. If the leak is in the roof proper, mark the spot by driving a long nail up from the attic space through the roof boards. (Don't fuss - you're "damaging" a spot that's already damaged.) This will allow you to easily locate the precise spot once you're up on the roof to fix it.
If you don't have access to the attic space, you'll have to guess a bit more. Go to the area of the roof directly above the wet ceiling and look for cracks, or other obvious flaws at that location, and any place more or less directly up the roof slope from that location. Keep in mind that chimneys, walls, and other points of juncture are common places for failure.
Step #2: Fixing the leaky area.
A. On shingled (sloped) roofs:
On well-sloped roofs, your roofing material shouldn't be absolutely watertight; it merely has to shed water in a downhill direction. This may be an elementary point, but it's an important one. (Even when water "backs up" behind an eave ice dam, it runs DOWNhill to get under the shingles. Water doesn't run uphill, except in fun houses.) Keeping this in mind, when you replace damaged shingles or flashing, you will slip the new material under the older material above the patch, and over the older material below the patch, so it all sheds water.
A1. Asphalt or fiberglass shingles:
Begin by using a flat bar to loosen the sound shingles or flashing above the damaged area. Bending this material up without breaking it, remove the hidden nails there which hold the damaged material, and remove as much of the damaged material as you can. Replace with new shingles or flashing, and replace all hidden nails, then press the top material back down flat. Asphalt shingles will eventually lay back down when warmed by the sun. 'Springy' flashing may have to be nailed to make it lay down again, but keep exposed nails to a minimum.
If you can't loosen or bend the sound shingles above the damaged area without breaking them, try to slip some flat flashing material up under them as far as you can; this will shed water over your patch material. Cut this flat flashing generously enough to extend several inches beyond the patch area on both sides in the lateral directions, and a couple inches at least in the downhill direction.
If you can't even do this, as a final resort, seal the whole leaky area the same as for flat roofs (below), and start saving your pennies for a whole new roof.
A2. Wood shingles:
Using a flat bar, loosen the shingles above the leak just enough to allow you to pry the damaged ones up a bit, and, moving them back & forth, get them to split where they are hidden nailed, and pull the split pieces out. Insert your flat bar back under and, pounding the blunt end with a hammer, try to bend or shear off those hidden nails. Cut new shingles to fit the empty space, and tap them up that space, under the existing older ones (to shed water). Wood shingles should not butt tightly on either lateral (horizontal) side, because they need room to swell when they get rained on, so leave about 1/8 inch gap on both sides. You will probably have to nail the bottom portion of the new patch shingles, which nails will be exposed, but that's life.
A3. Slate or tile:
Forget it; can't be patched. Use caulking or roof cement as best as you can, and start saving for a new roof.
B. On flat roofs:
Level and nearly level roofs need to be watertight. Having found the leaky area, it must be sealed in all directions.
First, make the area as dry as you can. There may even be pooled water under the top membrane which you must 'bleed' out, lancing the membrane if needed. Nail down any loose or bubbled areas, then apply the patch as follows:
My favorite watertight patch consists of fibered asphalt roof coating (available at any lumber or hardware store) embedded in fiberglass window screening. This type of screening is limp enough to lay down and contour to the roof when embedded in the asphalt coating, and strong enough to create a tough and durable patch. Cut the screening generously, to cover several inches beyond the leaky area in all directions. If you need multiple pieces, overlap them an inch or more. Then, with the screening in place, slather on the coating with a cheap brush. This works best on hot, sunny days, so the coating will flow easily. Use a stick, if you have to, to hold the screening in place while you apply the coating. This is messy, so wear the junkiest clothes and shoes that you own. In time (months, years), this patch will dry and harden somewhat. At some future point, revisit the patch, recoating if necessary. If you prefer, you may spend some extra money for non-asphalt coating material which may cure much more quickly. Make sure you don't get something that will react chemically with the fiberglass screening material.
This method works for just about any smooth flat roof, including smooth and mineral surfaced asphalt roll roofing. (I couldn't swear to its applicability for rubber roofs; it should work, if the rubber doesn't react chemically with the alphalt coating.) But if you have a pitch-and-gravel roof (pea-size or larger rocks), don't attempt to patch it this way. In such a case, just dump a bunch of fibered or non-fibered roof coating where you think the leak is, and hope for the best.