So, I ran a little test of my own, created a 2 sample pages, where on a button click I do a Response.Redirect like this.
protected void Button1_Click(object sender, EventArgs e)
Next I ran Fiddler, this is the result I got on the button click, the response I get back from the server is not the content of the page I want but this...
HTTP/1.1 302 Found
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 10 May 2010 16:17:57 GMT
Content-Type: text/html; charset=utf-8
Object moved to here.
Here; point to the page you want to navigate to (have to live with this HTML formating :))
The server issues a 302 and the browser issues another request to the actual page I want, so we got 2 round trips to the server.
now, you would be able to access the previous page through the PreviousPage property without having to cast into the type of the previous page.
So, in summary, use the PostBackUrl when ever you can over Response.Redirect
You would only be able to use this property with controls that implement the IButtonControl interface.