you can simply store level data in diferent xml or custom format files.
i think this method is the most used one. in that way you are able to dynamicly change or expand levels as you like.
also it's important to know what kind of game you're talking about ?
for example, if youre dealing with tilemap based games, you would store level data like:
- props and enemys
- triggers ( like level_end, or house_enter )
and so on.
remember that you can store as many data as you need. so for example, you can have multiple layers of tiles, also you can store data for trigger points( like house_enter or level_end ) that defines the next level / house.
also keep in mind that you can store all those informations in diferent files, so every level has it's own directory where you can store images, informations and mapdata in sub directorys if you want.
the possibilities are endless.