Is there a principle for when to use a bain marie or when to steam?
They're not really much the same and what they're used for is generally pretty different. I don't consider them interchangeable at all.

Use a bain marie for things that are liquid or will become liquid on heating:


  
  Chocolate can be melted in a bain-marie to avoid splitting and caking onto the pot. Special dessert bains-marie have a thermally insulated container and are used as a chocolate fondue.
  Cheesecake is often baked in a bain-marie to prevent the top from cracking in the centre.
  Custard may be cooked in a bain-marie to keep a crust from forming on the outside of the custard before the interior is fully cooked. In the case of the crème brûlée, placing the ramekins in a roasting pan and filling the pan with hot water until it is 1/2 to 2/3 of the way up the sides of the ramekins transfers the heat to the custard gently, which prevents the custard from curdling. The humidity from the steam that rises as the water heats helps keep the top of the custard from becoming too dry.
  Classic warm sauces, such as Hollandaise and beurre blanc, requiring heat to emulsify the mixture but not enough to curdle or "split" the sauce, are often cooked using a bain-marie.
  Some charcuterie such as terrines and pâtés are cooked in an "oven-type" bain-marie.
  Thickening of condensed milk, such as in confection-making, is done easily in a bain-marie.
  Controlled-temperature bains-marie can be used to heat frozen breast milk before feedings.
  Bains-marie can be used in place of chafing dishes for keeping foods warm for long periods of time, where stovetops or hot plates are inconvenient or too powerful.
  A bain-marie can be used to re-liquefy hardened honey by placing a glass jar on top of any improvised platform sitting at the bottom of a pot of gently boiling water.
  


Generally, the food needs to be pretty homogeneous with no big open spaces. 
If you put broccoli in a bain marie, most of it wouldn't be in contact with the inner bowl so little of the heat would be transferred. Steam, however, will creep in and around all of the branches and cook it evenly.

Steaming is best when you're trying to heat up oddly-shaped things that will retain their shape like vegetables, meats/fish/poultry, rice, cakes, buns, etc.

You also specifically would not want to use the steaming method for something like chocolate as you usually want to avoid introducing water into the chocolate.