I have a unique perspective on this...
I've done all but the handwritten letter -
http://www.bighammer.net/timeline.html
My observations are that no "single" method contact is effective. Typically what happens is that a single communication nets a staff assistant follow up if it's a "friendly" to your issue contact, and ignoring you if it's not.
Phone calls almost always go to the receptionist first. Personal staff numbers are impractical to give out to the masses, or even constituents you're friendly with. If they did that, we'd never get any of them on the line. While that can be difficult for us, in the long run at least we have a chance of getting heard.
Form emails, or script calls do work, if you have help. If you light the switchboard up with calls in support of something, you tend to get at least a form response, and follow up.
A personal visit is difficult to organize, and the staff are well trained to handle issues for the elected official. Still, if you're not getting a response, this is a good tactic. It's more effective if you are with like minded friends or an organization. The more support they see, the more inclined they are to help.
A good way to "get the ball rolling" on an issue is-
Up front meeting with key staff member, and your "supporting" associates.
Be up front, honest and brief at first, provide detail later.
Start with describing the problem, why it's bad, what makes it bad, what
you want done to fix it.
Give options and be willing and ready to show support for them.
Grant the staffer time to address the issue; 2-3 days is sufficient.
Make it clear that in respect and deference to the staffer that you do
want the chance to make YOUR OWN case to the elected official at some
point, it can be as short as 5 minutes if the staffer is good, or you may
have to make a full pitch if the staffer isn't "on your side".
Leave with a commitment on researching the issue and a follow up date.
Follow up with a phone call.
Discuss the progress to date.
Accept no excuses for a lack of progress, your issue is just as important
as more taxes.
Agree on another follow up call.
Follow up the call with an email directly to the staffer. Confirm your discussion points.
Keep the ball rolling in this fashion. Rotate contact responsibility to other constituents to present the - sometimes - illusory effect of a large body of support. Get your spouse or significant other to join in the fray. Neighbors, relatives, what have you.
Make new friends. The more groups you can show that support it, the better chance your change gets made.
Don't let long periods of time elapse between "significant" contact. Keep your name, org. and cause "on the radar".
Don't get discouraged. Political change takes determination. It's not for quitters and whiners. If you're either, you're wasting your time. Resolve to win.
I could write several pages on this... Heck, someday I might.