Similar to iOS jailbreak you can hack your stock android install to get root user privilege on the device granting you complete control over it. This process known as "rooting" allows users to overcome limitations, add functionality and customize each and every aspect of the operating-system. Compared to iOS jailbreaking, rooting android is a bit easy and can be achieved either by using a desktop application or an application downloaded from market/SD card. While there is quite a fleet of different android powered devices the methods shared below should work on most cases.
If you want to go the "On device" method z4root is the answer, you simply grab the application from "android market" (or download apk to your device storage from computer) and launch it following on-screen instructions.
What this does
It is an app you install from the market or by side loading, that has a single button that will root your device.
How safe is this?
Should be 100% safe - nothing on disk is changed besides the root binaries, so if something goes wrong, simply rebooting the device should fix up any and all issues. Let me know if you find any bugs!
Here is the list so far of known compatible and incompatible devices. I haven't actually tested these myself - I only have a Galaxy S device - but this list has been created by reports from users.
Samsung Galaxy S (All variants)
Galaxy 3 I5800
Cricket Huawei Ascend
Droid 1 (z4root 1.2.1)
Garmin Asus A50
Desire (requires nand unlock)
Desire HD (requires nand unlock)
Evo (requires nand unlock)
G2 (requires nand unlock)
Archos 70 (unknown)
LG Optimus One (unknown)
myTouch 3G (unknown)
If you want to go the desktop route SuperOneClick is the way to go, it not only supports rooting/unrooting but also provides options to "Enable Non-Market Apps" and "Getting UNLOCK code".
If any of these applications does not support your device you can take help XDA-Developer forums to get the task done.