@glantucan: You can dodge and burn in darktable itself — even in linear space!
The completely manual method: Duplicate an exposure module and set it to expose higher (dodge) or lower (burn) and use a drawn mask (an icon at the bottom of the module) to control it. If you control-click on the paintbrush in the mask settings, you can continually add strokes. After you’re done, feather the mask to make it more elegantly match your surroundings.
Alternatively, use the tone equalizer to do this all for you.
In most cases, it’s enough by itself, but if you want to do something additional, you can combine it with the duplicated exposure module technique above. When using both techniques, you might want to stack the additional exposure modules used for dodging and/or burning above the equalizer (control-shift drag to reorder the additional equalizer modules; something you generally shouldn’t do) so they take effect afterward, else they would also effect the tone equalizer (and you might not want this).
Watch Aurélien’s excellent video on “dodging and burning with the tone equalizer”: https://www.youtube.com/watch?v=kzACn3l49HM (It’s long, but explains everything about the module, including history and techniques of dodging and burning, which you may want to skip.)
And, of course, if none of this works for you, then you could always resort to editing in Krita. But it’s best to try to keep edits in darktable when you can. 