There isn't a lot of hard scientific data (that I have seen anyway) concerning stainless steel odor eaters. However, you can test this kitchen wisdom yourself, using your nose to take data. Better yet, get someone else to smell your fingers, since your own sniffer will have odor molecules inside it already from exposure to the food.
My experience has been that the knife trick works, but only up to a point. If you have been working with onions, garlic, or fish long enough for their 'perfume' to be absorbed into your skin, the best you can do is to diminish the scent with the steel. Other types of odors are not affected by contact with the metal.
How It Works
This is speculation on my part - if you know more about the chemistry behind this phenomenon, please feel free to write me. It makes sense to me that the sulfur from the onion/garlic/fish would be attracted to and bind with one or more of the metals in stainless steel. Formation of such compounds is what makes stainless steel stainless, after all. Onions and garlic contain amino acid sulfoxides, which form sulfenic acids, which then form a volatile gas (propanethiol S-oxide), which forms sulfuric acid upon exposure to water. These compounds are responsible for burning your eyes while cutting onions and also for their characteristic scent. If the sulfur compounds bind to the steel, then the odor is removed from your fingers.