Your best bet is staying somewhere just outside the city and near a metro station. Most hotels in the City charge $15 to $25 a night just to park at their hotel. Also it's way more expensive to stay in the city too unless you can get a good deal on priceline or travelzoo.
I like staying at either the Crystal City, VA Marriott or Hilton and then ride the metro in for sightseeing.
If you really want to stay in DC itself, I suggest going on Hotline and checking out their deals. If you stay after Easter week and before Memorial day, you can usually get a really good deal on a 3 or 4 star.
Embassy suites Capital hill is a fav of mine, but we got a good deal on priceline for that one. Had free Breakfast, which was great.
Holiday Inn Capital Hill also runs specials from time to time and is clean and in a relatively safe neighborhood, close to metro.
2 places I will never stay at again were the Windsor Park Hotel and the Red Roof Inn on H St. Never again.
Jane