The quality of a migration image depends strongly upon the accuracy of the velocity model. For tomographic velocity analysis, which is most popularly used in the seismic industry, pick errors, null space, velocity ambiguity and intrinsic nonlinearity all have a strong effect on the accuracy of the velocity model. The discussion in this paper is based on a post-migration tomography algorithm which can work on either offset domain common-image gathers (CIGs) or angle domain common-image gathers (CAGs). A large number of depth residuals (hyperbolic and non-hyperbolic) and the structural dip field are automatically picked and high-graded based on the event semblance on the CIGs or CAGs and the coherency along the horizon on post-migrated stack volume. In order to further high-grade the picks, a gamma cube is created which is used for QCing and further high-grading the picks. In the solution of the tomographic equations, a few constraints are used, including a preconditioning operator in data space to reduce the influence of extreme picks and a preconditioning operator in model space with a variable-length controlled direction smoother in order to reduce the null space, speed up the convergence and stabilize the solution, and hard constraints that limit the velocity updates within a certain range. The discussion focuses mainly on how to better represent the velocity model, how to automatically pick a large number of events and structural dip field, how to high-grade the picks based on the event semblance, horizon coherency and filtered gamma cube, how to add proper constraints to the solver, and how to further improve the tomographic inverted velocity model by gamma-based inversion. Usually, the tomographic problem is a highly underdetermined problem; even if we pick as many events as possible and add constraints to the tomographic equations, a perfect result is not guaranteed. In some areas, events are still not flat. In order to further improve the velocity model after tomography, a gamma-based inversion is used. Both numerical and real data tests show that our software package for complex structural velocity model building works well and produces encouraging results. Despite many successful applications of tomographic velocity analysis, challenges still remain for this ill-posed problem. The presence of a null space and pick errors guarantees some level of velocity ambiguity. After discussing some of the challenges facing tomographic velocity analysis, we introduce ways to cope with them.