You are confusing two related but dissimilar items.
Pixels are screen dots (pixel=picture element).
Items measured in dpi are printer dots.
However, the raw picture is always the pixels, and you can have a dpi setting referenced in the data that is only used by the printing device as to what to use for best printing. In other words the dpi is not the actual data, only a reference point. You could have a 300x300 pixel picture that is about 4x4" on the screen (@75 pixels per inch nearly the typical 72 many screens are - not a hard number, though). With no dpi info in the picture the printer might print it 1x1" (with 300 dpi printer) or 0.25x0.25" (with a 1200 dpi printer) or anything else. But if a dpi number is recorded in with the printer then it will probably print at a size proportional to that setting. Meaning with a 75 dpi setting it should print 4x4", or 2x2" with a 150 dpi setting, etc.
You said you have an image needing to be 300dpi (evidently for printing purposes) and the size is 4x6 (inches, I assume). That means, if you want 1 dot to equal 1 pixel, the picture must have 1200x1800 dots of information.
But you said your picture is just 640x840 pixels... doesn't equate does it? (by the way maybe you really meant 640x480, or the typical VGA resolution?)
In any case you are going to have to expand your resolution by some multiplication from 2 to 3, which only causes distortion, and/or blockiness. And the ratio does not work out either, your picture is going to distort, UNLESS that is, if you really did mean 640x480 and you have the picture rotated 90 degrees.
Anyway, there are tools that can expand your picture to whatever dimensions you want, and/or they can also record the reference dpi number in it as to what the default dpi is.
My suggestion, is leave the picture alone, in size and just change the dpi info in the file. That way the picture does not expand or distort, and the dpi setting with be whatever you set it to.
You might be able to use your Photoshop to change the dpi value, I really don't have Photoshop to know its capabilities. I do know that the free IrfanView can do just that, I would not expect less from the well respected Photoshop.
I need an image to be 300dpi and 4x6. I'm currently using Photoshop & the only options I have are to change the pixels, nowhere does it mention dpi. Can anyone tell me how to even check to see what the dpi of the current image is and then how to change it? The resolution in pixels is 72 and the size is 640 x 840 pixels. Any help is appreciated.

Chowhound
Comic Vine
GameFAQs
GameSpot
Giant Bomb
TechRepublic