The difference between estava + <verb in present participle> and <verb in imperfect indicative> depends on the verb in question and the context.
Estava + <verb in present participle>, just like in English, denotes the progressive aspect. For starters, this rules it out with non-phaseable states (like *ele estava a saber, *ele estava a ser alto), as it essentially turns the situations into states — but, yes, not into habitual states (which are actually derived from e.g. a series of events).
As to the imperfect indicative, a first observation is that in its normal usage (read: excepting here modal uses such as in conditional sentences or for courtesy), it needs some sort of temporal framing — this can be a temporal clause with quando/enquanto or some adverbial expression like muitas vezes, sempre, todos os meses (quantification) or ontem (temporal location, for states). The imperfect then indicates a intersection (partial or total) with some past, or a relationship of inclusion. Because of this, the imperfect may also alter the aspect of verb, eliminating its culmination and possibly even turning it into a state. For a state or an activity (like chover), which is atelic anyway (i.e., they don't tend to some completion), the effect is not as pronounced, but in something like:
Às 11h30, os mais retardatários ainda jantavam.
the culmination of jantar is lost and we can conclude they were dining before that time, and at the time of reference.
So the imperfect can, by itself, operate an aspect change close to estar + <present participle>, an indeed you could say estava jantando above. Likewise, quando cheguei a casa, chovia a potes and quando cheguei a casa, estava chovendo a potes are indistinguishable, though I agree with Jacinto that, in many cases, there is a small difference in register.
Only the imperfect, however, can describe habitual states:
Quando ligava a ventoinha, ela espirrava.
*Quando ligava a ventoinha, ela estava espirrando.
Espirrar, being a semelfactive, has no internal structure to focus, but the first sentence can instead be be read to mean every time I turned on the fan, she sneezed. This reading is not possible in the second sentence.
And in general, every time we use quantifiers such as sempre, todos os meses, com frequência, etc, estava + <verb in present participle> is not an option:
Antigamente, chovia durante o mês de Junho.
Ele jantava semanalmente em casa do amigo.