This is a feature I just found in Darktable that looks pretty good to me.

It recognises that a picture was taken with my 80D at 3200 ISO (for example) and applies the appriate level of filtering to remove the noise. At the default setting of 1, this is just the right amount - but you can adjust the slider to allow more or less from the starting point. It allows you to apply the filtering uniformly or according to drawn and parametric masks.

I also noticed that the sharpening function also works with similar masks. Very nice.