Most people try to make their hands warm EXTERNALLY, by applying heat, sitting on them, run hot water over them, wearing mittens, etc. While this may work to some extent, it's better to warm them up INTERNALLY by increasing circulation and overall body heat and energy. Do you notice how your hands aren't cold after you go running, even if it's outside in the winter? It's the exercise and blood flow. So I suggest a quick jog, jumping jacks, etc. You can even swing your arms back and forth and actually feel the blood going into the fingertips!
If you are cold on the INSIDE of your body, then applying heat from the outside doesn't help much, as you've noticed.