I would consider slightly discounting my price:
1) If I don't have enough clients and am trying to build up a business.
2) As a favor to someone if I have the time to help them and I want to (as a hobby).
But be very careful when doing this. #5 that Mani said is VERY TRUE. The smaller clients who ask for discounts and say they have small budgets are almost always the most difficult, time consuming, and needy clients. They have no clue what a huge favor you are doing them with your discount, they have no idea how long things take, will see an ordinary bug or error as evidence of your incompetence (and may see your willingness to discount as evidence that you are not good quality) and they will suck the life out of you if you let them. And after all that? They'll dump you in a heartbeat for someone $5 cheaper.
Sometimes it's deliberate - they are using their "small budget" to guilt/manipulate you into a discount, but often it's just the nature of their small size. They don't have an internal IT staff that understands these projects and what's involved and knows what to communicate and expects to install and trouble shoot things on their end. So they need you to explain things again and again and hold their hand every step of the way. Since they have no idea what's involved they don't understand how much they are asking.
You start out thinking you are doing them some great favor that they will appreciate with your discount but you may end up totally resenting them, ready to pay them to go away.
That is not all small clients! I have some absolutely wonderful ones and when the economy is down and the big clients have all projects on hold, the small clients sustain me. But after 20 years in business, I've learned it is a huge red flag when a small client initiates the project by asking for a discount or keeps bringing up the budget.
I have also learned that they usually can afford regular rates. When someone asks for a discount up front, I go in full price ready to happily walk away if they can find someone cheaper. I have gotten almost all of those projects and my inflexibility on price bought me peace with them while I saw other vendors pulling their hair out trying to appease them. Ironically, the clients who do not ask for discounts and otherwise try to suck the life out of me - I end up giving them a lot of freebies and discounts where I can and they understand what they're getting, appreciate it, and are loyal.
At a marketing seminar I once heard the speaker say:
People who shop based on price alone cannot spell the word loyalty.