Ah, thank you - I wasn't aware of that option for Solve. I am using 8.0.1.0.
I noticed that MaxExtraConditions -> Automatic also gives a good solution.
As a follow on question, is it possible for the Solve (or some another operator) to give 'a' as a function of 'b', even if not automatically? I often have to deal with problems such as this where one solution can be vastly simplified by substituting the expression of one of the other solutions. I tried hunting around but couldn't find an answer.