Is there a better, more jQuery-ish way of handling this image substitution?
var image = $(obj).children("img");
if ($(image).attr("src") == "Images/TreeCollapse.gif")
$(image).attr("src", "Images/TreeExpand.gif");
else
$(image).attr("src", "Images/TreeCollapse.gif");
Your image object would already be a jQUery instance so there is no need for you to pass it through $(...) again.
A good practice is to prepend variables that are jquery instances with $ and use them directly thereafter.