I find that night-time can easily end up being time for me to panic/worry/fret, etc. If you are finding many things occupying your mind, it means that you (or at least, your mind, quasi-consciously) are trying to resolve things. So, the best bit of advice I can give is to try to resolve them.

For me, I will write lists about the things I need to address. In this way, I allow myself to not worry about them before I am dealing with them (after all, I'm not going to forget about it if it is on a big sheet of paper in my face. )
The second thing I do, cheesy as it is, is to use a code word. When I find myself unable to sleep because I'm fretting, or when I find my dreams are about real-life scenarios, I just say the word "adventure." "Adventure" is my code word - a reminder that I want my dreams to be fun, adventure-filled oases.
Something else I do is kind of a (reverse?) meditation. I sit still, quietly, as in mediation, but I let whatever comes into my mind stick for just a short while before letting it pass. In this way, I address the problem inasmuch as I allow myself to not get stressed over it.

If you set aside a time for you to deal with whatever issues are clouding your brain, I guarantee your sleeping will be easier.

Of course, if you aren't really worrying about things, and it's more that completely random unrelated things are clouding your brain, you may want to address this in another way. You can always take the thought coming in, and incorporate it into your dreams (e.g. if you keep thinking about a beautiful girl, or a game system, even a school assignment, you may try to make that part of your dream in a pleasurable way.)

You said it was typically about the same topic, though. This leads me to believe there is an issue in your life that you haven't dealt with (or don't know how to deal with) fully. Try healing that part, and the rest will follow.

Peace!