What are the appropriate uses for a grouped vs a stacked bar plot?
I think grouped bars are preferable to stacked bars in most situations because they retain information about the sizes of the groups and stay readable even when you have multiple nominal categories. For me, the segments of stacked bars get difficult to compare beyond two categories - and even with just two categories, they can be quite deceptive if your groups are of very different sizes. I'd prefer a frequency table over a stacked bar plot any day.
You should also consider a stacked series of bar plots, with each group in a separate plot and each plot stacked on top of the last (there's an example on this page, referred to as "layered histograms", which I find confusing). This is probably what I use most often. The
ggplot2 packages in R both support this kind of plotting.
Historical note: histograms != bar plots
Stacked barcharts useless? Here's an appropriate use of one, actually, a hybrid, grouped and stacked bar chart. Lets say I set 1 milliliter of milk aside while passing a 2nd milliliter through a column packed with a resin capable of adsorbing a certain milk component that I'm able to later measure. Let's say I capture any liquid that drips through the column in a tube. Then let's say I wash the column with progressively stronger solvents while capturing the flowthrough of each solvent into a separate tube. Finally, let's say I measure the amount of the milk component in each tube, AND, then also the amount in the other half-milliliter. The plot needs to show (a) how much of the component didn't stick to the column, (b1 through bn) how much 'broke through' with each solvent wash, AND (c) -- here's where the stacked display comes in -- whether the total amount recovered equals the starting amount, i.e., whether some of the component appears to still be stuck on the column.
I don't think there are any appropriate uses of stacked bar charts; grouped bar charts are better, but both are inferior to other plots, depending on what aspect of your data you want to emphasize, and how much data you have.