Generally speaking,
- a component is a relatively finely
grained grouping of elements that
serve a particular service in the
solution.
- a module is courser grained and
acts as a grouping of one or more
related services provided by the
software.
A module will tend to make use of many componenents to provide its services whereas a component will likely to be constructed from a handful of classes and other components.
In any case its subjective and depends on the scale of the application. For a small application there is likely to be a single program (a module) and a number of components. In medium sized application there could be several modules and many components. In a large application you might want to introduce the term sub-system which is even more courser grained than a module !