I'm assuming from your question that the local files are version controlled, in which case you can use GetInfo() to get the latest revision number for the file in the repository and compare that with the latest revision number for your local file.
Another suggestion would be to use GetUriFromWorkingCopy(). I personally haven't tested it myself, but it's worth a shot.
At any rate, you should use diffing as a last resort since that can be an expensive call. If the file is not version-controlled, though, that may be your only shot.