I'm a big fan of eastern Europe, so I'd say Hungary and Slovakia are worth a visit, although it really depends on the route you decide to take and what your interests are. Three weeks disappears pretty quickly, if you have 25 places that you absolutely *have* to see.
As a general rule of thumb, a major city is best savoured for at least 3-4 days, smaller ones you might be able to sample in 1 or 2. A balance between major centres and smaller places or country/beach/mountain getaways gives you a better sense of a country, although on a short trip, you sometimes have to sacrifice the small places if you want to fit in all the big ones. You can get a sense of "real" life in a country by taking a day in a major city and exploring the outer edges of it - taking a day trip into suburbia or beyond, or at least relaxing in the parks and public spaces.
As far as planning a route, take out a couple of guide books from the library, and read the details about local attractions to see what you really want to do in the cities you choose to visit. If there are only a couple of things that intrigue you, you probably won't need to spend as long there. For example, Amsterdam has many diverse offerings, but 90% of them don't interest me, so I only spent two days there - some people plan on dedicating a week, some more.
Also, consider the sorts of things that have always interested you...did you read a book about Pompeii in 10th grade that fired your imagination? Go there. Do you live for fashion? Paris and Milan, darling... Is there somewhere that is just too impossibly bizarre that you just have to check out? Check it out. That will make your trip much more meaningful than following a "traditional" itinerary taking in the "mandatory" sights. A friend and I had a long-standing joke about Liechtenstein, so the first time I went to Europe, I had to go there - and I happened upon the most unlikely series of events that made that aspect of the trip unforgettable...
Because you don't have a lot of time, you probably won't have a lot of room for spontaneity, but try to keep your plans somewhat flexible, so that if you suddenly discover your favourite band will be playing in the neighbouring town, you can check it out. Or if you stumble upon a random festival, stick around for an extra day to participate.
If you have to fly in and out of the same city, it can be efficient to plan out a circular route, so that you don't have to do too much backtracking. If you can fly in and out of different cities, you can do a more linear route - either way, try to avoid long zig-zags which can add a lot to your travel time, and cut down on exploring time. If you want to go somewhere way out of range of the rest of your destinations, consider getting a cheap flight, instead of spending countless hours on the train. And where possible, travel by night trains, so that you can spend the daylight hours exploring.
Hope those tips help you get started, good luck with the planning, and fire away when you've got a little more of an idea of what you want to do.