What is a Plug-in and what is its Function?

I would like to know from your understanding what a plug-in is in very easy-to-understand plain English. What are some of the functions of a plug-in? How does a plug-in enhance a user’s experience of using software which is able to accept plug-ins? Under what condition should I consider using a plug-in?
