I don't know of a built-in function for this, but here is a user-defined function:
(*sigfiqs required to be integer>0*)
roundTo[num_, sigfigs_] /; IntegerQ[sigfigs] && sigfigs > 0 :=
Module[{mant, exp, rounded},
(*mantissa and exponent*)
{mant, exp} = MantissaExponent[num];
(*round the mantissa to sigfigs and reconstruct*)
rounded = Round[mant, 10^-sigfigs] 10^exp;
(* return integer for integer*)
If[ IntegerQ[num], rounded, N@rounded]
]
roundTo[123456, 3]
(*123000*)
roundTo[12.3456*^-10, 3]
(*1.23`*^-9*)