G?\SEnter
Go to end of document, search backwards, find a non-whitespace, go. If you need a mapping for that,
nnoremap <Leader>G G?\S<CR>:noh<CR>
EDIT: This will not work if the last line is not blank. Here's a modification that will work if the last character is not blank:
nnoremap <Leader>G G$?\S<CR>:noh<CR>
To fix that, it gets a bit complicated. We'll go to the last character of the file, and test whether it's a whitespace or not. If it is not a whitespace, we're done; but if it is, we can use the previous solution. (This also saves the state of things we mess up, so it will interfere minimally with your work.)
function! LastChar()
let oldsearch = @/
let oldhls = &hls
let oldz = @z
norm G$"zyl
if match(@z, '\S')
exe "norm ?\\S\<CR>"
endif
let @/ = oldsearch
let &hls = oldhls
let @z = oldz
endfunction
nnoremap <Leader>G :call LastChar()<CR>