Researchers have long been focused on enriching Random Utility Models (RUMs) for a variety of reasons, including to better understand behavior, to improve the accuracy of forecasts, and to test the validity of simpler model structures. While numerous useful enhancements exist, they tend to be discussed and applied independently from one another. This paper presents a practical, generalized model that integrates many enhancements that have been made to RUM. In the generalized model, RUM forms the core, and then extensions are added that relax simplifying assumptions and enrich the capabilities of the basic model. The extensions that are included are: Flexible Disturbances in order to allow for a rich covariance structure and enable estimation of unobserved heterogeneity through, for example, random parameters; Latent Variables in order to provide a richer explanation of behavior by explicitly representing the formation and effects of latent constructs such as attitudes and perceptions; Latent Classes in order to capture latent segmentation in terms of, for example, taste parameters, choice sets, and decision protocols; and Combining Revealed Preferences and Stated Preferences in order to draw on the advantages of the two types of data, thereby reducing bias and improving efficiency of the parameter estimates. The paper presents a unified framework that encompasses all models, describes each enhancement, and shows relationships between models including how they can be integrated. These models often result in functional forms composed of complex multidimensional integrals. Therefore, an estimation method consisting of Simulated Maximum Likelihood Estimation with a kernel smooth simulator is reviewed, which provides for practical estimation. Finally, the practicality and usefulness of the generalized model and estimation technique is demonstrated by applying it to a case study.