Sadly, even that is unprovable - I believe there's a way to convert a solution for this problem to one for the halting problem.
Of course you can still do it for a large fraction of functions you're likely to see in real life.
Yes -- It's not possible to decide, given two programs, if they have identical behavior. I think that's okay here -- the original poster asked for a definition of equivalence, not for a definition that was always decidable.
I previously posted this question in another discussion, but it didn't get any replies so, since I now have enough karma, I've decided to make it my first "article".
Any takers?