I am converting a 2m DTM to contours, and would like to have the smallest interval possible.
Is there a theoretical limit, or even a rule of thumb for defining contour intervals based on the resolution of the source data?
The minimum contour interval is the double vertical error (RMSE or standard deviation) of the height model. You can find that for ASTER GDEM in:
Lang, R. Harold, and Roy Welch. 1999. “Algorithm theoretical basis document for ASTER digital elevation models.”
It's defined by the "United States National Map Accuracy Standards (NMAS)"
For example: If your DHM have a resolution of 2x2m, and the vertical error is 4m, you can extract contours of a minimum of 8m.
I would say this depends on your knowledge of the data and how it was collected as well as how the DTM was generated from the raw data (regular grid vs interpolated from irregular points or other sources) I don't think there is a rule of thumb. Personally, I choose contour intervals based on the scale, type, content, purpose of the map, etc.