The multiplier of any CPU that can adjust its core speed dynamically (e.g. chips with SpeedStep, Cool 'n Quiet) are not completely locked as the multiplier can be reduced to yield the lower speeds. It is possible to reduce core speeds by keeping the multiplier locked and twiddling with the FSB or LDT clock, but this is generally not done as changing the FSB speed also usually changes things like the AGP/PCIe/PCI bus speeds, among other things. Many desktop enthusiast boards have "locked" AGP/PCIe/PCI slots that have a different clock generator than the FSB uses, but that setup is much more complex than leaving the FSB alone and twiddling with the CPU's multiplier.
The actual speeds that your CPU can assume while running are based on the multipliers that the CPU has available and its bus speed. There is generally an idle frequency that it the same for all chips of a particular line, such as the 1.20 GHz idle speed for Pentium 4-M CPUs and the 1.0 GHz idle speed for Athlon 64/Opteron dual-cores. In modern laptop CPUs, you will generally also be able to access speeds that are yielded by increasing the multiplier above that idle speed, on up to the top speed of your chip. An exception that I know of is Pentium M Dothan 400 FSB, which access speeds that are available every *two* multipliers. They idle at 600 MHz (6x) and then you get 800 MHz, (8x), 1.0 GHz (10x), on up to the top speed of your CPU, which can be an odd multiplier as in the case of the Pentium M 765 at 2.1 GHz. In that case, you'd get 600 MHz, 800 MHz, 1.0 GHz, 1.2 GHz, 1.4 GHz, 1.6 GHz, 1.8 GHz, 2.0 GHz, and 2.1 GHz.
Older CPUs like the Pentium III-M and Pentium 4-M have a defined idle speed and then the top speed available. My 2.20 GHz P4-M runs at the common idle speed of 1.20 GHz and then its top speed of 2.20 GHz. Desktop CPUs also have a common idle speed across their line, but the available multipliers can vary. AMD's 90nm and 65nm chips all have a 1.0 GHz idle and then go up to 1.8 GHz, then increase one multiplier (200 MHz) from there. This is because the slowest chip in those lines is 1.8 GHz and AMD didn't feel the need to enable multipliers between 1.0 and 1.8 GHz. All multipliers between 1.8 GHz (9x) and your chip's top speed are available, so my X2 4200+ at 2.20 GHz has the 5x one for 1.0 GHz idle and then 9x for 1.80 GHz, 10x for 2.0 GHz, and then 11x for the top speed of 2.20 GHz. A faster CPU like the 5200+ will have the same multipliers available as my 4200+ does, but adding in 12x for 2.4 GHz and 13x for its top speed of 2.6 GHz.
The speed is controlled by a kernel-space or user-space program such as SpeedswitchXP. The program polls the CPU for current speed and load, and then uses a table of load and speed values to compute what it should do. In SpeedswitchXP, you can set the values where it will switch. That will be the "up" and "down values. You can also set the way that the multipliers will be used, such as going up and down one by one or jumping from top speed to idle if needed. You can also lock the CPU's speed at one value, which is what I think you want to. You can do that by setting the power properties to "performance" and then the CPU will always run at top speed, no matter the load.