So, in A Storm of Swords, Joffery states that he isn't a stranger of Valerian Steel and this causes Tyrion to suspect him of sending the catspaw to kill Bran. He mulls it over later and goes through what he knows but is unable to come up with a possible motive for Joffery. But later Jamie, after making it back to Kings Landing, asks Cersi if she sent the catspaw, she says she didn't but does say that Robert believed Houses should be given the right to kill their disabled children, so Jamie deducts that Joffery sent the catspaw to impress Robert.
Now, I think we are supposed to question Tyrion's logic, the fact that he decides that Joffery must be a stranger to Valerian Steel to choose that dagger negates the reason for him suspecting Joffery in the first place. And that Joffery had to be stupid enough to use a dagger that traced back to him but still make the catspaw wait until he had left Winterfell, so nobody would have suspected him. I think Tyrion's chapter proves that Joffery sending the catspaw makes little sense.
But the problem I have with believing someone like Littlefinger did it is that why have people go through what they think happened only to have it be someone who nobody considered for reasons not yet known? Surely that makes those chapters there just to mislead the reader? I think we were given the information we needed just not told the right answer.
So, for the longest time I thought it was Cersi, mainly for the reason above but also it kinda irked me that the reason she was dismissed as a suspect was that she wouldn't be stupid enough to use a dagger that traced back to her, which I don't necessarily disagree with, but an estimation of Cersi's intelligence is down to opinion and wouldn't it be just as stupid of her to have a witness to her incest and not do anything about it? And you don't remove the person with the strongest motive from your suspect list because she can get hold of the murder weapon. But then it came to me, the dagger doesn't trace back to Cersi, it was Robert's dagger.
Cersi incest + Robert's belief on disabled children + Joffery wanting to impress his "father" = catspaw sent to kill Bran
Cersi incest + Robert's belief on disabled children + Joffery wanting to impress his "father" (- Cersi wouldn't be stupid enough to use a dagger that traces back to her - Joffery sending the catspaw doesn't make sense) = catspaw sent to kill Bran
Robert's belief on disabled children = catspaw sent to kill Bran
My theory is that King Robert sent the catspaw to kill Bran. He believes that Houses should kill their disabled children, he cares about House Stark and he knows Ned is never going to do it, or agree to it. As for the dagger tracing back to him? Well, he's the King, does he really have to care? It wasn't one of his favorite daggers, so it was probably just a "here have this" moment. And it explains why the catspaw was shocked to find Catelyn, a true assassin would kill anyone who got in his way but being sent by the King surely changes things. Surely this guy would want to impress? In the book we are told how Cersi and Joffery cannot be the culprits and hidden in there is a new piece of information that implicates King Robert and gives him his motive, and he also can get hold of the murder weapon.
So anyway, I am pretty content with this theory but would love to know what others think.