Changing an object's pivot orientation to align with its normal

I’ve been struggling with this scenario for ages, and have never actually found a decent trick to it.

I’m trying to change an object’s pivot point so that its forward direction lines up with a normal of one of its faces.

The best example I can think of is. Say I have a plane that’s tilted forward 34 ish degrees. If I don’t apply the rotation, the pivot is set so that its forward direction is perpendicular to it.

Now, if I apply the rotation, the pivot orientation is reset and the object orientation stays the same.

Now, if I want to change its orientation so that its pivot is perpendicular to its face again and have no idea what the original rotation was, I can’t easily rotate the model back to its exact original orientation and reset it again. I can take a guess and approximate it by eye, but it would never be accurate enough, and it would take too much take in the end.

Here’s a shot of the scenario I mentioned. The left image is after I rotated but before applying the rotation. Second is after applying.
http://i.imgur.com/UayVhFT.png