Which approaches are used in practice for estimating the condition number of large sparse matrices?
It is very common to project the matrix into the Krylov space (generated by repeated application on a vector) and then to get the condition number of the projected matrix. In PETSc, this can be done automatically using -ksp_monitor_singular_value.
My previous answer recommended Dixon's 1983 paper, "Estimating extremal eigenvalues and condition numbers of matrices". It essentially boils down to a modest number of matrix-vector multiplications and solves against Gaussian random vectors and is essentially the power algorithm coupled with a priori error bounds which are not dependent on the spectrum of the operator.
However, in the same sense that Krylov algorithms are strictly better than the power algorithm, Kuczynski and Wozniakowski analyzed an analogue to Dixon's algorithm based upon Lanczos decompositions which will converge significantly faster on average.