There is a last block. The larges values of the variable that they use to store block ids.(this is very large)
I think in the sense of block creation there is no last block, so Tims was completely right saying that there is no last block. Please see the wiki.
I appreciate you are making effort to help me to get answer for my question, and I fully realize that my question must be not worthy to answer for an experienced user/developer so I probably should be grateful whatever answer I get, on the other hand you had two inputs but none of them has anything to do with the original question of this thread, so it would be really great if you could address the original question of the thread :-)) I hope it is not impolite from my part to ask this :-))
If there is ever a "last block" (and no one begins mining again ever) then bitcoin will cease to function because there will be no transactions occurring. All the coins will be where they were and none will be able to move. In all likelihood, it mining would ramp down slowly and so would difficulty. Perhaps even low enough that someone might begin mining on a CPU again (or a lightbulb if it had enough CPU power in the future).
As far as rolling over the value of integer for nblockheight, with a 32 bit unsigned integer, at a 10 minute block interval we have more than 80000 years, so plenty of time to switch to a 64 bit integer. ( (2^32)/(6*24*365) = 81715 if I didn't make a typo. )
:-)
That make sense, thanks very much for the reply!