When talking about the smell of food, we usually use good rather than nice, but when talking about other aromas (such as a scented candle), nice is perfectly fine:
That candle smells nice!
Depending on how you define the words, nice can have five or so definitions, and good more than a couple dozen. So there are bound to be overlapping contexts either word can be used, and some where one word will work better than the other.
I think the essence of nice – at least, as compared with good, in the way the O.P. is inquiring about – is captured nicely in these four definitions found on Wordnik:
- Pleasing and agreeable in nature: a nice time.
- Having a pleasant or attractive appearance: a nice dress; a nice face.
- Exhibiting courtesy and politeness: a nice gesture.
- Done with delicacy and skill: a nice bit of craft.
On the other hand, good has far more definitions. This makes it a more versatile word, yet more generic as well. With definitions such as these:
- Being positive or desirable in nature; not bad or poor: a good experience
- Having the qualities that are desirable: a good exterior paint; a good joke.
- Of high quality: good books.
With such general definitions of good, it's hard to think of contexts where we could use the word nice, but the word good would not apply. But I'd recommend using nice instead of good if you were describing someone's kindness, politeness, or agreeable nature.
An interesting experiment is to consider these two statements:
Dave was a good man.
Paul was a nice man.
When you hear either of those by themselves, what kinds of qualities spring to mind, and how much do those overlap? To me, the latter focuses more on how the man interacted with acquaintances (Paul was friendly and affable), while the former speaks more about how the man conducted his business (Dave was upright and generous). Yet those two nuances aren't necessarily mutually exclusive – I wouldn't have a problem describing the nice man as good, and the good man as nice.
Sometimes one word will carry a certain nuance or overtone as well. Consider:
Sally looked good in her new dress.
Sarah looked nice in her new dress.
Depending on how they were uttered, the first could be construed to mean that Sally's dress was provocative and had sex appeal, while the word nice would be more apt for a less flirty outfit. Again, though I can imagine someone swapping those words yet preserving the originally intended meanings.
I think such subtle distinctions are too numerous to build an exhaustive list.