The way I handle level transitions is through game states.
Let me give a little example:
Game states of: TitleScreen, Menu, Level1, Level2, Level3, Credits, Pause
So each game state can use it's own LoadContent and UnloadContent.
When TitleScreen is active, LoadContent loads a Title Image, then unloads them.
When the Menu becomes active, it loads any graphics need with the menu, then unloads them.
When Level1 becomes active, it loads all it's assets etc.
The only difference is a Pause game state, in which it doesn't load or unload, it just sits and doesn't call GameUpdate until the "unpause" is pressed.
How you manage gamestates is up to you. I like to create an enum named GameState
Something like this
public enum GameState
GameState currentGameState = GameState.TitleScreen;
Then just use a switch
//Load TitleScreen Stuff
//Load Menu Stuff
//Load Level 1 assets
throw new Exception("Something Broke.");
You can then leverage the gamestates to cleanly handle your loading and unloading of game assets.