At the end of the movie Neo jumps into Smith and blows him up. Is there a reason he chooses this method to kill him?
The scene was a rather neat way for the Wachowskis to visually represent Neo's transformation into a Hacker of the Matrix.
Upon his rebirth, he perceives the programming language that creates the Matrix 'reality' directly, including the Agents. When he enters Smith and destroys him from the inside, the act evokes the real-life techniques of advanced hacking, in which the programmer manipulates the underlying code, rather than the 'surface' interface that simple users see.
Neo jumping into Agent Smith is a reflection of how the Agents override the humans in the Matrix.
At various points in the movie, you can see the Agents both exit and enter humans - it's a representation of how they are overriding the human.
Similarly, Neo is rewriting Agent Smith's source code - he is inserting himself into Smith the same way that the Agents insert themselves into the other humans.
I don't know what all these other answers are about. As a gamer, it looked to me like a routine "spawn-kill" from an old FPS game, where two people would spawn on the same spot, or one person would spawn on the same spot where somebody else is already standing.
The game physics can't compensate for two objects being in the same physical space, so it immediately terminates one of them. In a game, this is where the ragdoll physics are applied to the killed object/person and it is pushed away or falls down. In the matrix, Agent Smith exploded. Obviously it took a little longer in the movie for dramatic effect. It looked like Neo turned himself into liquid, then after the explosion it seemed like he had pushed outward from inside Smith, bending space itself.
I believe he chose this method because it completely undermined the laws of physics in a world that is based on simulating reality - the other agents would know there is nothing they can do against this kind of threat.
Neo did not Hack Agent Smith, he merged with Agent Smith and in doing so allowed his code to merge with Agent Smiths. The moment he does that the Machines (which Neo is plugged into) can then rewrite the entire Matrix deleting agent Smith, Rebooting the Matrix and allowing a refresh of the system
It isnt Neo that destroys Smith it is the Machines that do that.