Is there any significant difference between the nouns прах and пепел. I understand they both refer to ashes, but are they completely interchangeable?
Прах is remains of a dead human body, not necessarily cremated (мир праху его). The word is a little bookish and almost not used in everyday language.
Пепел is remains of any burnt thing (бумажный пепел, пепел костра). See also зола.
I agree with Alex.S that first thing one think of hearing word "прах" nowadays is what is left of a man after his death. "Прах к праху" is a citation from Bible - "Ashes to ashes". However this is high-style figurative meaning. And it is the only time when "ashes" is translated as "прах".
In fact "прах" is old word for "dust", and not for a "пепел". Пепел is what is left from burnt things.
Below go examples from Ushakov's dictionary.
Usages of "прах" in "dust" meaning: "Отрясти прах от ног" - remove dust from feet. "Прах вился столбом" (Лермонтов) - "Dust was raised high".
Another old-style figurative meaning - something non-valuable, "И мощь бесов исчезнет яко прах" (Пушкин) - "Devils' might will disappear like dust", "Деньги прах, вот что я тебе говорю" (Островский) - "Money is a dust, that's what I'm saying to you". (However if I would translate this to English I would use "ashes" to make a reference to Bible).
Finally - dead body (figurative), including cremated body (in this case it is less figurative - instead of "ashes" you call this powder "a dust").
And there are several proverbs "В пух и в прах" - completely, like when spent all money on gambling - "проигрался в пух и в прах", "Пойти прахом" - when something valuable is ruined or disappeared, like when someone's business was ruined because of a bankrupcy.
So, as a bottom line, these words are usually not interchangeable. They are interchangeable only in biblical figurative meaning, or when you are referring to a cremated body.
"Прах" (Church Slavonic), "порох" (native Russian) and "порошок" (diminutive of "порох") were essentially the same thing, but in modern language they have become completely different: "порох" - gunpowder, "порошок" - any powder, except gunpowder and cosmetic powder (which is denoted by the loanword "пудра"), and for "прах" now remain only bookish and high-style figurative expressions for dust and human ashes.
"Пепел" is a cognate word to "powder", yet it denotes exclusively a light powder-like ash (often flying round the fire). As such ash is typically grayish, so there is an adjective "пепельный" which means "grayish color" (e.g. "пепельные волосы").
On the other hand, "зола" (btw. it's a cognate to "coal") means dark heavy ash, which usually remains in the fireplace.