This declares a variable of type Button called x. You cant use it until you assign something to it.
Dim x As Button
This instantiates a Button and assigns it to y. Gives yoiu a usable button "called" y
Dim y As New Button()
or even
This is the same as x, but uses a fully qualified name, for instance to to distinguish it from Jacob.Perkins.Button, if you had invented your own.
Dim z As New System.Windows.Forms.Button()
So yes it does matter.
When to use new, wehn you need to create (instantiate) one.
In .net
Dim x as Button
// followed by
x = new Button()
// is the same as
Dim x as new Button()
Dim x as button declares a variable called x that is expected to 'point to' an instance of Button.
if you said x = 36, you'd get a compiler error, because 36 isn't button it's a number. if you said x = Button1 and Button1 existed on say your form then that would be okay, given of course it was also a button.
At a certain point the only real way to "understand" this stuff it to start trying it.. Nothing horrible will happen, keep it simple and any mistakes you make will become obvious when you read the error message.