What is the "veil" that covers the heart when the Old Testament is read? 2 Corinthians 3:13-18 (NIV)
  
  We are not like Moses, who would put a veil over his face to prevent
  the Israelites from seeing the end of what was passing away. But their
  minds were made dull, for to this day the same veil remains when the
  old covenant is read. It has not been removed, because only in Christ
  is it taken away. Even to this day when Moses is read, a veil covers
  their hearts. But whenever anyone turns to the Lord, the veil is taken
  away. Now the Lord is the Spirit, and where the Spirit of the Lord is,
  there is freedom. And we all, who with unveiled faces contemplate the
  Lord’s glory, are being transformed into his image with
  ever-increasing glory, which comes from the Lord, who is the Spirit.


Paul is speaking here about a "veil" that covers the hearts of people (probably the Israelites) which prevents them from seeing the glory of God when they read the Old Testament.

What exactly is this "veil" that Paul speaks of? What exactly does it conceal? Does it still cover the hearts of people? Is there any possibility that this "veil" still covers the hearts of some Christians today?
Moses, after speaking with God, had a shining face.  When he came out from speaking with God he would give the people God's commands under the Law with the glory of a 'shining face' which they feared with trembling and fright.  Before the glory faded, signifying the non lasting nature of the covenant under the law, Moses would put a veil over his face. He was hiding something, not God's glory but its fading.  This means the nature of the law under the old covenant, especially its temporary aspect, was not revealed fully and openly to the people but hidden.  Moses was not trying to deceive them, making them think that his face always shining but was simply doing whatever God required of him.  Possibly it would made no sense to the the people to clearly see at that time in progressive revelation that the law was merely a 'fading glory' when first introduced. That would be counter-productive according to God's purpose of that stage of history.

Now Paul is grabbing this old fact about the veil and transferring the symbolism to the Jews, for although the gospel had come and superseded the law, Christ superseding Moses, yet they still clung on to the law thinking its glory will 'never fade'.  Now the gospel is declared 'openly' with no hidden parts because it will never fade or need something in addition (not like Moses who put a veil over the temporary nature of the law). Yet the Jews were not seeing it. It must therefore be a veil upon the heart, i.e. a stubborn unbelief blinding their minds from seeing the truth of the gospel and the temporary nature of the law.  

Sin blinds the mind and so even carnal Christians have a certain kind of veil making them unable to see the glory of the gospel.  That is why Paul writes to the Ephesians:


  I pray that the eyes of your heart may be enlightened in order that you may know the hope to which he has called you, the riches of his glorious inheritance in his holy people, and his incomparably great power for us who believe. That power is the same as the mighty strength. (NIV, Ephesians 1:18-19)


For all unbelievers this veil is thick and damming, not just blurring the vision:


  The god of this age has blinded the minds of unbelievers, so that they cannot see the light of the gospel that displays the glory of Christ, who is the image of God. (NIV, 2 Corinthians 4:4)


In conclusion the veil is the ignorance to spiritual truth by which sin blurs the mind of a believer or totally blinds the mind of a sinner under the bondage of the Devil.  This covering of the eyes through ignorance is metaphorically called a veil.