i had the same exact problem a few weeks ago, and i hacked together an expression to do it. It actually does the same as Dan E's version, but ofcourse Dan's is much more elegant, simpler and works with the camera as a child under a null, something i struggled to get to work in my version :-D
thanks Dan for this, i will save that as an animation preset... with one small adjustment, adding support for the active camera:
cam = thisComp.activeCamera;
v = cam.toWorldVec([0,0,1]);
lookAt(position,position+v)
and for anyone interested, here is my simple much worse version that breaks if the camera is parented:
cam = thisComp.activeCamera;
fromPoint = cam.position;
atPoint = cam.pointOfInterest;
lookAt(fromPoint, atPoint)
DONT USE this :-D
and my expression for making it work under nulls was more complicated and needed 2 extra nulls for the expression to look to. I couldnt get .toWorldVec to work with the cameras position and target, only with nulls.
Happy Holidays to all on the AE-list.