Functional testing is about ensuring the software meets the requirements stated at the beginning. This basically tests the functionality, i.e. the desired behavior. Again its just ensuring that the basic workflows adhere to the stated requirements. There is another type of testing called the Non Functional testing, which basically deals with the aspects like performance etc.
Executing test cases with QTP does ease the job of functional testers as u automate the workflows based on a set of test cases.