The way I think of it is this way. GET is used when retrieving information, and POST is used when submitting information. More generally though, GET should be used in any case where the exact same page can be retrieved multiple times with the same vairables. On the other hand, POST should be used when the page should only called once with that particular set of variables.
For instance, submitting an order form would be a job for POST rather than GET, because the operation should only be completed once, then forgotten. Otherwise the order could be performed multiple times, unintentionally. The resulting page cannot be bookmarked or linked to from other pages (without use of a form). However, a customized product information page would be a good idea for GET, because it's just pulling information from the server, which can be done multiple times by multiple users without a problem. GET then also allows users to bookmark the page, or link to it from other pages.
As stated above though, I've found it best to think of it in terms of the names themselves. Use GET when the user is just getting information from the server, not storing anything to the server. Then use POSt when the user is posting information the server, without intention of receiving anything in particular back.