A component could be used for pretty much anything that drives your website. For example, we have a newletter component on our own website that stores peoples email addresses, names and which newsletter list they have subscribed to. However, a component does much much more than this.
We automatically send out newsletters each week and month to our subscribers, the details of these newsletters are stored for later use such as who opened and what they clicked.
A module, in essence, is a box or a place to display information.
Take for example the box over to the right with the title "Contact Us". This is a module, as is the "Subscribe" box and the other ones below it.
These modules can interact with their respective components but they can also just as easily be hand coded PHP, HTML or any other language.
However, they don’t require html in Joomla to work. They can be simple plain text messages do inform site visitors of information available to them.
Modules can be very simply a means of communication or more complex with images embedded or even dynamic coding such as PHP. It's really entirely your choice.