What are the major ethical concerns with private tutoring? I'm currently a computer science graduate student on a low stipend, and have started spending a few hours per week tutoring undergraduates to help make ends meet. I love teaching and want to be a help to students, but I also want to make sure that I don't personally cross any ethical boundaries in doing so, or be complicit in students doing so.

Some obvious transgressions are tutoring for a class for which I am also a TA (conflict of interest), and writing code or otherwise outright doing work for students (plagiarism), but what other ethical considerations do I need to keep in mind to remain above-board in doing this?

Students sometimes ask me questions about their assignments. How much help is too much help? If a student is asked a "trick" or unclear question, is it appropriate for me to clarify it? If they're having trouble debugging a program, can I help them localize the issue to a few lines of code, or do I need to remain very general about things? Can I review code they've already submitted to help them improve by, for example, showing a better way of managing memory in C, or showing how to optimize or shorten their programs? Can I write short code snippets illustrate a point in a lesson?

I've also noticed that some questions on homework assignments are very basic. For example, in our systems course, the students were asked "True or False: a register is a small location in RAM". The answer was in the lecture slides. It makes me nervous to not be able to distinguish a request for a basic fact from a request for a homework answer. The assignments are only visible to students during the term, so I can't tell unless they show me (as was the case here). Should I give an indirect answer like "I can't just tell you that; did you review the lecture notes on CPU architecture?" as I did this time? Was doing that unethical?
You seem to have a pretty good ethical sense based on your question, so I think you won't go far wrong following your instincts. 

But if you have the opportunity, it is a good idea to go visit the prof teaching the course for which you are tutoring and ask for any additional general guidance. 

It is usually a good idea to answer "trivial" questions with other questions. "What do you think the answer is? Why? Explain your reasoning." That sort of thing. Often the student will get a flash of insight. But if you can point to a flaw in reasoning you help the student without giving direct answers. 

Good professors when asked questions by students seldom give out complete answers unless it is in the context of a continuing conversation. Instead, a "minimal" hint is given to get the student over a block and which lets them proceed. If a student repeatedly has problems with the same issue or block, an additional exercise will be given that tries to give the student practice with the reasoning. 

But the technique of asking for an analysis of any issue that leads to a block is a good way to diagnose the student's thinking and help them get over it. 

Giving students general problem solving strategies is also good, but probably less useful, as it doesn't usually have a diagnostic element. But even "Where did you look for an answer?" can help. Especially if followed by "Where else could you look?". You could then suggest other sources if appropriate. 

I'll note for completeness that some students are misled by the resources that they use. Some of those resources are wrong and some may be written poorly leading to ambiguity. I've had students get in terrible jams by using perfectly rational thought processes applied to bad input data. That is rare, but it can occur.