We took the train from Prague to Budapest. It is pretty cheap and can be booked easily online. Czech Railways has a nice modern website, and is reasonably easy to use. I would recommend saving seats, just in case. It does get pretty crowded during the weekend and the trains are OK. Unfortunately the train was stuck in Slovakia for 2 hours due to frequent fires seen in the summer. Also there were no border checks and most people are really nice and friendly on the train.
Budapest is an amazing city, which requires several days to truly understand. The city is divided between two cities, Buda and Pest. Buda is the hilly side with the Citadel and castle, while Pest is the side with the main train station, central city, and the really empty airport (their national airline went bankrupt, putting the fancy new airport at little use). There are tons of tourists, but the city is so big it is never a problem.
There is a pretty useful metro network, but you can also get on one of the many hop on, hop off buses. They often are grouped with 2 boat tour passes which is also cool to check out. Boat tours only happen during the summer (which is pretty standard in many countries). Try some Hungarian pastries while you are walking around.
There are tours of the beautiful Parliament building, but we did not have time to check it out. Fisherman’s Bastion is really cool and there is a cafe overlooking the city there. Around Heroes Square you can check out a “fake” medieval castle built for the world’s fair. Across from it are several thermal baths.
Since Hungarian Airlines went bust, it is a bit more difficult flying out, but Ryanair, aka humans are cattle, has several flights out from the airport.