Hi Rob,
The Repeater is the most lightweight of them and gives the most direct control of the markup that is rendered whereas most of the other list controls render as tables. Nothing wrong with rendering tabular data as html tables so thats ok most of the time, but in any case where I don't want tables or any case where I want complete control of output I use Repeater. In some cases if its not really tabular data then its more semantic to use ul and li elements in which case I would use a Repeater for sure (ie the Links module).
If it seems semantically correct to use html tables then I use one of the other list controls, often GridView. Especially if I plan to do in place edits (where you edit directly in the grid row) I typically use GridView as Repeater doesn't have the elaborate events that come with GridView. I'm not a huge fan of the in place edit thing. I only use it for quick and dirty editing implementation for tables that don't have a lot of columns. For more interesting features I prefer the list to just link to a dedicated Edit page. I rarely use the in place edit approach inside a module control because I generally try to avoid postback inside a module control as it can have unexpected results in other modules that may be on the same page. In that situation I always link to an edit page and then link back to the page containing the module so the postback can happen on a page thats only purpose is the editing. Of course postback can be less of an issue now with ajax things like update panel but updatepanel isn't the most scalable thing so I use it judiciously.
These are just guidelines, whatever works is ok with me, each situation should be decided based on the needs, but these are some of the things I consider.
Cheers,
Joe