This is hard to do, but here is what I've done to sort my dungeon tiles, my old DDM tiles, my small maps and my dungeon decor:
1.) Sort them by setting type. I've got separate top tier groupings for forest tiles, swamp tiles, desert tiles, city tiles, dungeon tiles, water tiles and other tiles. If a piece can fit in more than 1 setting comortably, I keep it in the one in which I expect to use it the most. Each of these goes in a separate box.
2.) Each box is subdivided into ziplock bags (or smaller boxes) by a sub-theme. My forest box has a bag for foliage, another for rocks, another for statues, another for pits, etc... My dungeon box has a *lot* of smaller bags, and some of those bags contain even smaller sub-sub-bags when I want to further divide up the contents.
I make a list of which bags are in each box. However, I hardly ever need to look at the list.
When designing an encounter, I decide to start either with a blank surface or with a preexisting map (WotC, GameMastery, etc...) which I will modify with tiles.
I also have a small bin of 'go to' pieces that I like to have for quick access. These are things that may suddenly pop up in an adventure, such as a magic wall, a fire, a pit, darkness, etc...