Message inputs (and outputs) are currently only used for implementing cross-chain messaging, i.e: for bridging tokens.
For typical token transfers and contract interactions you would probably never need to use them, but they provide a mechanism for passing arbitrary messages between chains.