God speaks to me primarily through his word when I read and when I am taking notes on his word as I write. I keep a bible journal and write down what God reveals to me when reading the bible. As I write the impressions become more clear.
God does rarely speak to me through mental impressions of him speaking (or Christ). No, I don't hear voices - nothing audible, but it's real.
Not long ago, I was angry over something and I couldn't get some bitterness out of my head. I didn't want it there. I had prayed for it to go away. I couldn't concentrate on what I was doing. Finally, I said out loud, "Jesus, I can't WAIT until I'm with you and I don't have to battle thoughts like this anymore!!"
The immediate impression in my head was him saying, "I can't wait either." And it wasn't a mocking tone, but a loving tone. I cried and cried thanking him for not turning away from me and understanding that I wanted those thoughts OUT of my mind. And they left.
Another time several month ago (in April, I believe), our pastor was preaching out of Joshua 5 where the Israelites had crossed the Jordan River and were preparing to tackle Jericho. God told them that they could not do anything until they had circumcised their men and the reproach of Egypt was taken away.
The pastor said, "And we are like this. We cannot go forward until we complete the first task God has given us."
This time, the impression I felt was God - he said to me (again, not audibly), "That's you, kid. Listen." I began in my bible readings to search for that "thing" that was undone. I prayed for God to show it to me. He did, but not until June. When he did, it was very clear.