Creating good automated GUI tests is a significant time investment. While some automated testing tools allow you to create tests from screen recording, the best tests are performed using scripting so that you can generalize behavior. ie.. wait until dialog box X, appears, enter Y, on success do Z. TestComplete allows you to create robust tests using multiple scripting languages including javascript, with many many hooks to value added components, ie.. the ability to pull test input from the DB (data driven testing), comparison of gold master images against target, OCR to interpret dialog box text when in graphics form. Compared to other commercial offers its reasonably priced.
I love open sources as much as the next guy. But we chose TestComplete as well as we couldn't find a reasonable open-source alternative. If you are serious about automated testing then you will end up creating thousands of lines of reusable and robust test code that should add enough value to justify the cost.
Also TestComplete was recommended by the guys that made the site you are now using Joel on Software blog and is the winner of multiple Jolt awards TestComplete jolt awards
Also as a QTP user you may find this discussion on TestComplete vs QuickTestPro interesting. I don't want to come off sounding like an advocate for this product. But I have used this for years in several different operations all successfully, and recommend this to every software house I know. Unless you can find an open-source application that is equal or better I would recommend you go with this product and spend the money, as it will save you money.
Note that this recommendation is focused on Windows desktop applications. For Java based applications you may have some reasonable open-source alternatives: Open Source Automated Test Tools Written in Java