Am I starting to wonder if I get ripped off for staying here and not asking for a big raise
I have always been baffled by this one. Usually at big companies there is a rule set by corporate that raises can only be 3-5% max in most cases. So even if you're good, the max you can expect on top of $70k is $3500 for your loyalty. If instead you had jumped to another company, you could have boosted your salary to $80 or $85k. And after you left, they would likely pay your replacement the same amount. So why don't companies just offer their loyal employees the higher salary (even if it exceeds the 3-5% threshold)?
The answer is, they do, but only if you threaten to leave. That's what I've done every year for the last 5 years. I never stop the job search, even once I land the job, and when I find a better job offer at the 1 year mark, I bring it to my current employer. Sometimes they offer to match the salary or offer better benefits, and I stay, other times I go with the other job that pays more or offers better benefits (sometimes the new job matches the counteroffer from my current employer).
In this way, I have increased my salary by an average of 19% per year since 2005, gone from no bonus to a very generous bonus package, increased vacation to 3 weeks, and negotiated telecommuting every Friday.
If and when it does become a problem (i.e. interviewers start saying "this pattern looks disturbing"), the worst that happens is that it gets harder to get new job offers, and I stay at my current job a little longer, knowing that I got an average of 19% per year in pay increases while the average Joe (if he's lucky) got 5% per year, or in the OP's case 2.5% every other year.
Someone with a high amount of reciprocated horizontal loyalty can be of much greater value (and greater danger) to companies. When you hire someone with great horizontal loyalty, you get to tap into their entire network of former co-workers and they can literally build out an entire new department in your company overnight because they can bring with them all the right people. Unfortunately, this works both ways as these people can also take them all from you overnight as well.
I don't know Houston specifically, but that doesn't sound too out of place for a server side java dev with 4 years of experience in the midwest.
A couple things bother me - 2 raises in 4 years. Also, dual Java and .Net work. As much as I'm a 'play in all camps' advocate, you may never get truly deep skills to justify higher pay (in future jobs) if you're doing jumping between tech.
Overall, it's not the worst pay I've ever heard of for someone with multiple years of experience in Java and .Net.
Indeed shows:
http://www.indeed.com/salary?q1=.net&l1=houston&tm=1 = $85k http://www.indeed.com/salary?q1=java&l1=houston&tm=1 = $91k
Obviously just a rough ballpark, but you're near average it seems.
Things you can do to improve your salary:
1. Get a new job.
2. Improve your written communication skills.
Regardless, the cost of living in Houston is below average for large metro areas so you're not doing too bad, IMO. To be frank, however, you're not on a "superstar" path here--if you stay where you're at you will never increase your salary to the top end of the accepted range for your experience level.
This stuff matters, even for geeks: communication is one of the big differences between being a cypher and a superstar.