Before you buy any microphones, you will have to consider how you will connect them into your laptop. It sounds like you don't have a separate sound card, and the microphone input on your laptop is likely to be poor quality.
There are several options. First you could get a microphone that has a built-in USB interface (eg the Samson C01U). This will be the cheapest option, but may start to prove awkward if you want to use more than one microphone.
Another option is to get yourself a budget USB audio interface. For example, the Alesis iO2, will allow you to connect two microphones at once, and provides "phantom power", which is important if you want to use a condenser microphone.
The third option is to get a camcorder with external audio input and use a mixer to feed the signals from the microphone into that.
On to the microphones themselves, you can spend almost as much as you want on a microphone. One example of an entry level condenser microphone is the SE Electronics SE2000. Dynamic vocal microphones are a bit cheaper (e.g. Sennheiser e-845)
As for whether you need one or two microphones, it will be easier to get a good balance if you had one microphone for voice and one for piano, otherwise, the piano could easily overpower your voice. However, with good mic placement you should be able to get a decent recording with just one microphone, certainly a lot better than you were getting before.
Finally, on the software question, there are a lot of choices for budget audio recording. The free audacity program may well be all that you need, and will let you adjust the levels between each microphone. I'm not sure that it can capture video at the same time though, so you may need to find a different video capture program, preferably one that lets you do some basic editing and mixing of the two channels of audio after capturing.