sourced from Android Central
This guide will show you how to get a permanent root on your Optimus V, WITHOUT flashing a custom recovery.

Much of this post comes from KSmithInNY's Guide to rooting the Optimus S which can be found HERE. Thanks to KSmithInNY for letting me use his guide as a base.

WARNING - This is a cat and mouse game we play with manufacturers. I guarantee you an update will come from LG that patches this exploit and will prevent people from rooting. It will also close your root access if you've already rooted using this method. Long story short, NEVER ACCEPT OTA UPDATES FROM THE CARRIER OR MANUFACTURER.

What You'll Need:
- The Android SDK, FOUND HERE. Install this on the root of your computer so the path is C:/android. After you've installed the SDK, make sure it's up to date by launching the SDK Manager. This will be something like c:\android\SDK Manager.exe. It will ask you to update several things, but the only one that needs to be up to date is the SDK Platform for Android 2.2 (Note: If Android SDK installer is unable to locate your JDK, just click "Back" button and then "Next" again - it's a bug in the installer.)
- Drivers for the LG phone installed on your computer. Instructions can be FOUND HERE courtesy of our favorite android hacker, modder, developer, blogger (jack of all trades) gbhil
- SuperOneClick v1.6.3, which is available from xda-developers HERE.
- And the file I have attached to this post. Download it, unzip it, and put the 2 files inside in your android\platform-tools folder created from installing the SDK.

Before you go any further, make sure you have downloaded/installed/updated everything in the list above, or will you not be able to complete the root.

Step 1: Plug your phone into your PC with the USB cable.

Step 2: Make sure the phone is charge only (don't mount as USB drive) and USB debugging is enabled. Menu > Settings > Applications > Development > check mark USB debugging

Step 3: Run SuperOneClick.exe. Select the psneuter exploit on the right, and then click the Shell Root button. SuperOneClick will attempt to gain a temporary root for your phone. This may take several tries. Keep trying until you get a message that says "You phone has a Temp ADB Root". Leave this window open, do not reboot your phone, and continue to step 4.

Step 4: Open a CMD window and type the following:

cd c:\wherever-your-sdk-tools-folder-is (mine for example is C:\android\platform-tools).
(After entering the next line, adb shell, you should have a "#" prompt, if instead you see "$", SuperOneClick has not been able to gain access to your phone. Go Back to step 3 and try again).
adb shell
mount -o remount,rw -t yaffs2 /system /system
adb push su /system/bin
adb push busybox /system/bin
adb shell
cd /system/bin
chmod 4755 su
chmod 555 busybox
adb reboot

(Your phone will now reboot)

Step 5: Go to the android market on your phone and download "Superuser"(free). The developer will be listed as ChainsDD. You can then download TitaniumBackup and attempt to backup your phone. It will also check to make sure your phone has been rooted correctly. It you don't get any errors, your phone has been rooted correctly!

What I ask is, if this helps you root, tweak, or modify your phone, please watch this thread and help someone who may be experiencing issue. Yes, I am asking you to donate your time. The same donation I made while writing this so you could root your phone

Simple Explanation of commands and programs:
busybox - busybox is collection of Linux utilities to manipulate files and many other things. Many programs that require root use busybox to copy files and move them around, among other things.
su - su allows programs to run with higher (e.g. root) permissions.
adb shell - Logs you into your phone and allows you to enter commands directly
exit - Logs you out of your phone
adb push - Sends a file to your phone
mount - Allows you set up file systems as read/write instead of read only, among many other things
cd - Changes to whatever directory is specified
chmod - Changes the permissions for the file specified. the number 4755 simply tells the linux system that anyone can run the file.