Removing columns with low variance I'd like to learn a model from many features.
As a pre-processing step, I will remove constant features.
I'd like to remove almost constant features as well, i.e. I'd like to set a low variance filter.
Would you have any guidance on how to implement this filter?
My concern is that some features are around 100 (in which case a variance of 0.1 is very small) and some other features are around 0 (in which case a variance of 0.1 is not small).

The only reasonable threshold is removing features where variance is equal to zero, so they are actually constant. Constant features bring no information, so are useless.
As about what does "low variance" mean, as you noticed it is subjective. You could quantify it using coefficient of variation $c_v = \tfrac{\sigma}{\mu}$, but why would you remove features with low variance?
Imagine you work for a company that provides e-mail services. There is a new spammer on the market that started spending spam e-mails. You noticed that all the spam e-mails mention "viagra" while this is very rare for non-spam e-mails. So simple rule to mark e-mails mentioning "viagra" as spam has nearly perfect classification performance nonetheless that the binary feature that marks usage of the word "viagra" has very low variance. It is in fact one of your best features in the dataset.
Moreover, as noticed in the comment by user2974951, in most cases you don't need variable selection. If you use different feature selection algorithms, in many cases they won't give consistent results. If your dataset is small, you should rather use expert judgement to pick the features that make sense, or use regularization.
