This is similar to Jason Zentz's answer, but begins with your original tree and modifies some things further. Like that solution, this uses forest, together with the manual's definition of nice empty nodes (although I implement the idea with a slight variation in coding).
Implemented with forest, the code for your original tree would be like this:
\begin{forest}
[CP
[
]
[C$'$
[C
]
[(?)
[Neg
]
[TP
[
]
[T$'$
[T
]
[\textit{v}P
[AGENT
]
[\textit{v}$'$
[\textit{v}
]
[VP
[V
]
[THEME
]
]
]
]
]
]
]
]
]
\end{forest}
which gives us

Hardly an improvement over the original. If we change the beginning of the tree like this, we can improve it a bit:
\begin{forest}
for tree={
parent anchor=south,
child anchor=north,
calign=fixed edge angles,
calign primary angle=-45,
calign secondary angle=45,
}
[CP ...
This ensures that edges are always drawn from the south anchor of the parent node to the north of the child node, and that the angles between the lines connecting the parent with the leftmost and rightmost children are at constant angles of -45 and 45 degrees respectively. (These angles are measured from the direction of growth which is south by default.)

There are a couple of issues here: the line to empty nodes is too long and, also, the line to short nodes is too long. The latter is less noticeable, but nonetheless clear when you compare, say, the siblings v and VP.
We can improve things, although not entirely eliminate the problem, by adding
align=center,
base=bottom,
which will create (potentially) multi-line, tabular nodes with centred columns, and will align siblings by aligning the bottom of these tabulars:

Now for the code based on nice empty nodes which Jason Zentz used:
before typesetting nodes={% based on nice empty nodes - page 52 of the manual, used in Jason Zentz's answer: https://tex.stackexchange.com/a/216103/
if content={}{
for parent={
for children={anchor=north},
},
shape=coordinate,
}{},
},
which gives us:

This more-or-less incidentally allows you to draw nice trees with empty nodes with children, provided no node has more than 2 children. For example, a tree specified as
[
[
[
[A
]
[
]
]
[
]
]
[
[
]
[
[
]
[B
]
]
]
]
will look as follows:

Complete Code
Here is the complete code for the final version of your original tree and the demonstration tree above. I've wrapped the modifications into a style nice tree so that you can just say:
\begin{forest}
nice tree
[root node ...
Again, this style will work well for trees where nodes have 0, 1 or 2 children. It will not work well for larger numbers of children, but the trees you are concerned with seem not to require that.
\documentclass[border=5pt, tikz, multi, varwidth]{standalone}
\usepackage{forest}
\standaloneenv{forest}
\begin{document}
\forestset{
nice tree/.style={
for tree={
parent anchor=south,
child anchor=north,
calign=fixed edge angles,
calign primary angle=-45,
calign secondary angle=45,
align=center,
base=bottom,
before typesetting nodes={% based on nice empty nodes - page 52 of the manual, used in Jason Zentz's answer: https://tex.stackexchange.com/a/216103/
if content={}{
for parent={
for children={anchor=north},
},
shape=coordinate,
}{},
},
},
},
}
\begin{forest}
nice tree
[CP
[
]
[C$'$
[C
]
[(?)
[Neg
]
[TP
[
]
[T$'$
[T
]
[\textit{v}P
[AGENT
]
[\textit{v}$'$
[\textit{v}
]
[VP
[V
]
[THEME
]
]
]
]
]
]
]
]
]
\end{forest}
\begin{forest}
nice tree
[
[
[
[A
]
[
]
]
[
]
]
[
[
]
[
[
]
[B
]
]
]
]
\end{forest}
\end{document}
qtreefor this but that's just because I know it. I'm suretikz-qtreeis also fine if that's what you are familiar with. What's the problem? – cfr Apr 01 '14 at 00:46