I bought the Kodak set (there is a big card and a small card), which is commonly available in many places. Of course if you don't have a grey card with you and want to do white-balancing, you can use a white cloth or T-shirt. Although that may not be the most accurate, it is better than nothing.
An object, under different colour light, will appear different in colour. For example, if you put a white cloth under orange light, then the cloth will appear orangy. When you take a picture, you can either capture it as you see it (ie, orangy), or you still want it to look white in colour in your picture. If you want it to look white, then you need to tell the camera that the lighting colour is now different, so that the camera can compensate for it. This is call white-balancing. Most camera has some algorithm to automatically "guess" the white-balance. But the more accurate way is to do it manually.
The first reason why manual white-balancing is more accurate is because you are telling the camera exactly which object (for example, the grey card or white T-shirt) is "grey" (ie, same proportion of RGB). The second reason is because manual white-balancing is done Through-The-Lense, which means that any colouration introduced by your lens and filters will be compensated for.