A reason is a simplified means for letting users tell the system which general ledger account to write to during a posting. By creating a reason and associating it to a general ledger account, you will create a situation in which the user doesn't need to know any accounting in order to do their job correctly.
For example, in a situation such as your warehouse manager doing an inventory quantity adjustment, the user can simply provide a reason for the adjustment without having to know anything about the company's general ledger structure or accounts.