Heres how I like to explain it...
Imagine your terrain as a bunch of bathroom tiles sitting on the floor. Arrange them all into one big square grid. Now place the player/camera in the center of the grid (the center bathroom tile). Keep track of what grid/bathrrom tile the player is in at all times as he moves around the terrain (simple division of position by tile size).
Now, lets say the player moves 'up' to the tile right above him. All you have to do is pick up the bottom row of tiles and place them along the top row. Reshape them all (this can be a little tricky, read up on vertex manipulation), and bingo, you have unlimited gamespace.
Use the same logic to load in objects (like trees, rocks, ect...). When you cross from one sector to another, delete all the old objects in the 'back' row, and create the new objects in the 'front' row. Build a loading/deleting queue to make this proccess nice and smooth.
All you need is zeal