What are the differences between offer, propose, and suggest?
The differences are of formality, weight, and exchange.
As Aaron's answer illustrates, offer has an element of exchange or cost implied. For example, the phrase "make an offer" when negotiating the price of something. An offer is from some party to another party, whether you're offering your hand (to balance somebody), your house (to host a party), or a discount (on the sale of an item).
Suggest and propose differ in their level of formality and weight. For example, food often comes with a "Serving Suggestion" (we think about this much would be a good portion) — using propose here would seem overly formal.
Suggest is also used to distinguish between a recommendation and an order. "I suggest you do this" has a different tone to "Do this." Sometimes an intensifier is used to convey that what is formally only a suggestion is actually a command "I strongly suggest you [x]..."
Propose is the most formal. You propose to your girlfriend that the pair of you get married; it's unlikely that you would suggest the same thing. The best working definition of propose I can think of is "to make a formal submission for appraisal." This is why researches write proposals for research funding and not suggestions.
Does that help?