multiple views for the same action?

So I'm looking for best practices, advice, feedback, etc. on this.

How do you handle multiple views for the same action? How do you decide when one way is better than another?

If I have a view for an end-user and the same view for an admin, but some things are supposed to be different, how do you manage that well?

I know the basic functional ways, I'm just wondering about recommendations to keep it clean and as DRY as possible.

For example, if the difference is minimal, maybe wrap some code in the view itself. I.e. if showing a Foo and the admin should have an "edit foo" link but otherwise the display is the same, then I'd probably just wrap a role check or something in an if statement in the view.

But what about when it gets a little more complex... different content_for blocks... different layout... even some different main content.

If they are radically different (the other extreme), I'd make two separate views and switch in the controller.

Thoughts?

-Danimal