I want to create a simple system for tracking changes to my Drupal configurations and knowing which modules are used by some configuration settings is crucial, but will be happy to use an existing one if it is good enough. Is there a module that implements this?
I think you are looking for Configuration Management module.
The module knows where configuration was changed and allows users to either "activate" a configuration that was changed in the datastore, or "write" to datastore if a configuration was changed in the activestore. If you enable the diff module, you can see the what is in the activestore vs. datastore.
and I'm not using this module before.
I would be surprised if such a module exists in Drupal 7 - "Features" and "Configuration manager" (see Bala's answer) can warn you (diff) if a particular variable, node structure, view etc. changed. They cannot really tell you who changed it and when following a course of action (they dont store user and timestamp info) - which I would consider true tracking and very valuable piece of information.
I say I would be surprised because I recently looked into hooking into variable_set and realized there is no module_invoke_all - thus you cannot hook into it - thus your module cannot interact with variable_set.