A full node contains the full data (that is, all transactions) generated after a snapshot.

The benefit is that nodes can have reduced hardware specs.
The drawback is that information that resides in transactions is lost after every snapshot, if the transaction is behind (older than) the snapshot, and has no balance on it.

A permanode contains all transactions ever made. Since you can add a message to a transaction, a message of value, you may like it to be accessible at all times. In that case a permanode would offer you that accessibility. It could be your own node ("free"), or one hosted as a service. They'd also be interesting for research as well as to track the origins of the balances.