For practical applications Anindo's answer is probably best: just get a pre-existing LED driver and follow the driver's appnotes.
If you're interested in a more discrete solution, you can create a discretely multiplexed circuit.
The idea is to split the LEDs up into near-equal sized groups. The number of groups and LEDs in each group should be as close to each other as possible for minimum component count.
For example, if you have 15 LEDs using 3 groups of 5 would work well. 5 groups of 3 will also work, as will 3 groups of 4 and 1 group of 3. The number of total pins/transistors required = #groups + max #LEDs/group. So in each of the above solutions you would need 8 transistors. The exact mix of NPN's/PNP transistors you will need depends on how you hook things up.
Then for each group tie all of the anodes together. You can then use a PNP group-driver transistor to determine which group is going to be turned on. On the other side, you connect the group LED selector pins. So the first LED in each group would have their cathodes tied together, the second LED in each group would have their cathodes tied together, etc. Each LED selector pin is then driven using an NPN transistor. If you tie all of the NPN transistor emitters together you can get away with a single current limitting resistor. Note that the bases of the PNP transistors will still all need separate current limiting resistors.
So the total BOM count:
8 transistors (depending on grouping, mix of NPN/PNP will vary. Can also use MOSFETS).
4-6 current limiting resistors, depending on how many groupings you have. One will determine the LED drive current, the others are just for limiting the PNP base current.
A quick schematic with 3 groups and 5 LEDs per group:

There's also a similar schematic which uses a common cathode configuration.
Now to drive the LED's:
Rapidly switching between different groups and turning on which LEDs in that group you want on. If switched rapidly enough (>120Hz will probably do) the LEDs can be made to appear like they're all on.
Like I stated above, this solution while theoretically works well probably won't work as well as the package solutions Anindo posted. Some LED drivers may even function this way internally. A single package is usually easier to deal with, will likely result in a smaller PCB, and potentially requires fewer control pins on your MCU.