I believe a campaign should end when it feels like it should end.
Having said that, I think it should more be determined by the players, DM and overall story. If the players don't buy into the game or story, then it will not last very long. If the DM loses interest, the campaign will die a very ugly death.
If you design a campaign around a module, adventure or a one-shot, then it ends when the party completes the module/adventure or the idea is played out.
If you design a campaign world then the world itself may never end, but the characters and adventures may change or may stay the same.
Of course you have something in the middle as well, that's why I say it should end when it feels like it should end.
My own campaign world has been going for 4+ years now, the longest I have ever run at one time, most have died due to interest, TPK, or other problems before reaching the point they would have ended normally.
Three of the main characters in the world are original (1st level starts), now averaging level 38. I have other story lines going on that some of the same players play in that range from level 10-12 (after starting at 3rd) and another that is average level 33, that was made up to help a new character (old player) worked in while the main group was on down time, but his schedule made it difficult to maintain gaming, however, the other players that had generated characters to play in this story line wanted to finish it after he quit so I have maintained it due to mutual interest.
RD