The mention of an onscreen touch dpad again, leaves me to think some have still not noticed that there is one in the on screen keyboard that pops up.
Anyway, I thought I would also mention Gpad. Which also works pretty well for certain apps, where it is necessary to have the d-pad functionality.
__________________________________________________ ______________________________________
You'll notice that we have emphasized the lack of D-Pad spoiling the usabilty. While you can't add any hardware keys, atleast you can now use the accelometer to function as a virtual D-Pad.
This application will allow D-Pad finctions using the accelerometer. Meaning, when you tilt the device slightly to the left, it simulates pressing the left key.
http://forum.xda-developers.com/showthread.php?t=466002