What you want is to set your ignition timing about 4 degrees retarded from the point where detonation begins. This setting means the flame front will meet the piston at the top, maximizing cylinder pressure and the time (crank degrees) to push the piston down, making the most power. If you ignite the charge too late, the pressure doesn't build until the crank has rotated some, and you lose precious crank degrees (HORSEPOWER) of work. If the charge is ignited too early, the flame front will hit the piston ON THE WAY UP, and this is a sure-fire way to destroy your engine very quickly. What is needed is to find the timing point at EVERY RPM point where you are around 4 degrees retarded from detonation under full throttle, since this is the 'ideal' time for our spark to occur. Obviously, you would leave yourself a safety zone of 3-4 degrees of timing at all points to CYA in case of bad gas, clogged main jet, vacuum leak, abnormally hot engine, etc. The power difference between detonation and 3-4 degrees of retarded timing from this point is negligible, so riding the ragged edge of timing is not worth the risk, IMO. Detonation does NOT have to be audible for it to turn your expensive mechanical marvel into junk in short order.
Finding the Advance Curve
Ideally, you would remove all advance from the distributor, and run a locked timing. You then put the engine on a dyno, and play with timing across the RPM band from idle to redline at full throttle (finding the timing where you are 4 degrees from detonation) and then chart it. Then, you remove the locked timing from the distributor, set your initial timing to match what you found was best at idle. Next, match the distributor's curve to match what you found to be best on the dyno by changing weights and springs in the distributor.
If you have the patience and time to set up this custom curve, and have a heavily modified engine, your patience will be rewarded! Get yourself a Mallory/MSD distributor. You will find they are VERY adjustable. The easiest method to follow is very straightforward. Find the MAX advance point your engine tolerates (between 30-40 degrees BTDC) above 3000 RPM. Now find the place where it responds best at idle. It may be 15-24 degrees BTDC. You may find that this much advance causes starting difficulties when the engine is hot, so be sure to check this out! Ignition before top dead center causes 'negative torque' and that's what suddenly STOPS your engine from cranking. Avoid this, or use a retard that is activated during cranking.
Now, you know the two critical points in your advance curve. You only need to figure out how FAST you want the advance to come in. I recommend being conservative, and kick the advance in SLOWLY and see how the engine responds. Keep adjusting it (it requires distributor disassembly) so it comes in quicker and quicker, until you detect detonation (problem). Back it to the previous setting, and you are DONE with the centrifugal advance. Now, dial in 10 degrees of vacuum advance, and adjust the advance so the carb(s) will actually activate it and you are done! PHEW! Frankly, though, finding the advance curve using this method isn't practical for most of us.
The 009/010 is best used for stock rod ratio engines, where you do not want to do all this customer ignition curve work. Let me first say that I'm not a fan of the 050. The 050 has a different advance curve, and it's more suited for short rod engines (like the type 4), or engines with a bigger crank and shorter rod (78 stroke with Porsche length rods, etc).
If you are using an out of the box distributor (009/010/050), you have to set the timing as advanced as you can so it doesn't detonate at full throttle (where you would have a problem with a centrifugal only distributor). Problem with this is, you are setting the WHOLE CURVE BASED ON THE MAX TIMING AT ONE PLACE. This in itself is significant. You are finding the point in the rpm range where you can't advance any more, even though at many (all) other rpm points you are too retarded! THIS is exactly why setting up a custom distributor advance curve is the ideal solution, but not everyone has the time/patience to set it up. Obviously a fully adjustable setup like a programmable Haltech makes this very easy on a dyno since you just tap a few keys and you are on your way, not like changing springs and weights in the distributor every time you have to make a change.