Traditionally, variable autotransformers (variacs) are used. These give decent but not amazing load regulation, but in cases you need better then a motorized variac with automatic adjustment can be used. Multitap transformers with relay selection can also be used, with the main caveat being that it can only do discrete steps, with a size depending on how many relays and windings you can justify.
There are also linear (dissipative) and switching methods to regulate voltage. A linear pass transistor can be placed inside a bridge rectifier to for a pass element that works for both polarities of the AC, and the same applies for switching transistors.
These days I'd also consider rectifying the voltage and re-converting it back to AC using a synchronous buck converter. It might seem a bit more complicated, but it can offer good efficiency and controllability, and it gives you the ability to do arbitrary frequency and waveshape as well.
Which solution is best depends on the requirements of the application. Line and load regulation, THD, response time, overload handling, power level, regulation range and resolution and so on.