Refresh Token Policy locked to immediatly expire token

I ran across this problem myself and have only just found the solution; I couldn't find it documented anywhere.

The short answer is, your app needs permissions (scope) to have the ability to use refresh tokens.

In Setup > Create > Apps, click the "Edit" link for your Connected App and add the scope "Perform requests on your behalf at any time (refresh_token, offline_access)".

Once this has saved (you may have to wait a while), you will be able to change the value for the refresh token policy