1. Connect you iPhone to the computer MAKE SURE it doesn't gets sync automatically. (In my case, luckily, i had unchecked Open iTunes and Sync Automatically when connected).If you aren't that lucky, then try brute aborting sync the moment you connect your iPhone. Good Luck! :)
2. Once your iPhone is connected, Right click your iPhone(name) and click Back Up(Only).
3. After the backup is done, navigate to the back up folder, i.e ( "C:\Users\
4. There you will find list of different back up files, search for the file that starts with "3d0....". This file name too will be of modified date today. Since you just backed up the iPhone.
5. Open the file in Notepad++, and search the text content with the "Senders Name" or any part of the SMS text that you remember.
6. Voila...you will find your the deleted SMS Contents there.
Disclaimer:I cannot guarantee the success of this process. For me, I followed this process on my iPhone4 32 GB Black,running on iOS 4.2.1 Powered by DevTeam with iTunes 10.2.1 on Windows 7.
Also i found a great method to backup all your SMS to a new database table archive, so that you can find your SMS there no matter what CRUD action you do with the default Message DB table.
For this you need to have have your iPhone Jailbroken (See here).
Steps:
1) Download "iPhone Browser" from here. Connect your iPhone and navigate to (/private/var/mobile/Library/SMS/sms.db). Copy the sms.db to desktop.
2) Open the SMS.db (I used SQLite Manager for Firefox which is free, you can use "Sqlite Browser") select “message” table then right click and select “Duplicate Table”
3) You’ll get a new table called “message_copy” select and rename it to “shadow” (or any other name you want)
4) Scroll down to “Triggers” option in the left, right click and select “New Trigger” once new window apperas select “message” in the drop down “Table Name”
5) In option “Fire” select “AFTER” then “On Event” option check “Insert”.
6) Click now on the upper tab called “Body”, erase all the content an copy this:
BEGIN
INSERT INTO shadow (address,date,text,flags) VALUES (new.address,new.date,new.text,new.flags);
END
NOTE: Pay attention the "INSERT INTO...." line ends with a ";"
7) After that select “Save” in the menu options and give a name to the trigger (I choose “insert_shadow”)8) Now, close the "SQLite Manager" and put the sms.db modified again in the iPhone (You´ll receive an Overwrite warning…select YES)
9) Reboot your iPhone.
This process was given by @Hugardo_ar in the comment section of this post. This will make a copy of every incoming or outgoing sms in the new Shadow Table. So you can always go to sms.db, open it with SQLite Manager and browse and search the "shadow" table to get the SMS content no matter what you did with the original copy of SMS in "message" table.
Happy Tweaking!