Why does my singing sound bad?

So, I've been singing for 2 years now, and I recently got a microphone, an amp with a headphone input, and a pair of Audio Technica ATH-M50x Professional Studio Monitor Headphones. I plug the headphones into the amp, and sing into the microphone, and I sound really good. On pitch a majority of the time, and when I'm not, I fix my pitch and I sound amazing for the rest of the song when I sing. I sang the other day in front of a couple of people, and they told me I had that "raw natural talent." Problem is, when I use my iPhone (4) or my windows 8 ASUS laptop to record myself singing, I sound bad. Not bad as in nasally, or off pitch. Just like, really flat, bland, and like I'm not singing at all. However, when I sing into the mic with my headphones on, I sound really really good. I have full resonance, I don't sound flat or bland, and I even amazed myself with how I sounded. I'm not entirely sure if it's the laptop/phone's microphone's fault, or if it's mine. I'm really confused and I'm starting to get discouraged because this isn't the first time that this has happened before. I've always wanted a mic because I'm a lead vocalist/back up vocalist in my band, so it was a necessity, and the headphones stop the vibrations going in my head so I can hear myself and how my voice is exactly, which is pretty cool. So I personally think it's the laptop/phone's fault, but I wanted to see what everyone else thought about this. I DO smoke, but not while singing. What do y'all think?

Added (1). I just straight up record with my phone's camera, or my laptop's webcam. No effects or anything. Just the regular settings of the webcam & the camera's microphone & quality

When you record with your phone, it can pick up a lot of unwanted noise, and not enough wanted noise. Phones aren't built to record amazing audio, so sound from it does sound very flat, and doesn't have a lot of dynamics. It can all depend on the program you record into, or the equalizers you've set it at. Just a raw recording will usually not sound studio or radio ready. If you can narrow this down I can help you even more.

When I practice, I use the worst piece of junk recorder to monitor myself. If I sound good through that, then I know I'm on the right path.

If I sing through a reasonably good sound system, it sounds better.

Add reverb, auto-tune, and effects then I sound great.

But that means nothing. That is just electronics. Anyone can do that.

If you want to hear the truth, your phone is the way to go.

So, you need to work, practice and study until you sound great on the worst piece of junk… Then you can sing… And you will sound even better through all the electronic gimmickry.