Hi Amir,
You may want to check the allChanges() function. I did something similar in one of my apps where I wanted to log all changes made to a model. This sample script may give you a start.
Model file (someModel.cfc)
<cffunction name="init">
<cfset beforeUpdate("trackChanges")>
</cffunction>
<cffunction name="trackChanges">
<cfset var loc = {}>
<cfset loc.audit = this.allChanges()>
<cfset this.audit = loc.audit>
</cffunction>
Controller file
<cffunction name="yourUpdateFunction">
<cfset var loc = {}>
<cfset loc.update = arguments.form>
<cfif someModel.update(loc.update)>
<cfset loc.audit = someModel.audit>
<cfloop collection="#loc.audit#" item="loc.key">
<cfif loc.key EQ "categoryid">
<cfset loc.changedfrom = loc.audit[loc.key]["CHANGEDFROM"]>
<cfset loc.changedto = loc.audit[loc.key]["CHANGEDTO"]>
<cfif loc.changedfrom NEQ loc.changedto>
<cfset sendYourEmail()>
</cfif>
</cfif>
</cfloop>
</cfif>
</cffunction>