Let {T 1 , . . . , T n } be a set of n commuting bounded linear operators on a Hilbert space H. Then the n-tuple (T 1 , . . . , T n ) turns H into a module over C[z 1 , . . . , z n ] in the following sense: C[z 1 , . . . , z n ] × H → H, (p, h) → p(T 1 , . . . , T n )h, where p ∈ C[z 1 , . . . , z n ] and h ∈ H. The above module is usually called the Hilbert module over C[z 1 , . . . , z n ]. Hilbert modules over C[z 1 , . . . , z n ] (or natural function algebras) were first introduced by R. G. Douglas and C. Foias in 1976.The two main driving forces were the algebraic and complex geometric views to multivariable operator theory. This article gives an introduction of Hilbert modules over function algebras and surveys some recent developments. Here the theory of Hilbert modules is presented as combination of commutative algebra, complex geometry and the geometry of Hilbert spaces and its applications to the theory of n-tuples (n ≥ 1) of commuting operators. The topics which are studied include: model theory from Hilbert module point of view, Hilbert modules of holomorphic functions, module tensor products, localizations, dilations, submodules and quotient modules, free resolutions, curvature and Fredholm Hilbert modules. More developments in the study of Hilbert module approach to operator theory can be found in a companion paper, "Applications of Hilbert Module Approach to Multivariable Operator Theory".