Maybe make overwatch a bit weaker, require snap shooting or something. Then again, I don't see why footslogging up to someone with an axe while he has a gun should work out all that well, which is why you use a bike, jetpack, horse, metal box, or lots of bodies.
Of course, I'm most likely the last guy you should ask about 40k balance
Partly it's that in universe the few guns that can actually kill things like daemons and space marines are meant to be very rare, and things like 'nids and orks are meant to come in vastly greater numbers than can be killed with guns.
Rules wise metal boxes tend to be overpriced or not allow you to assault out of them, bikes aren't dedicated assault units and tend to get beaten in the actual fight, cavalry are usually very overpriced, and assault units generally tend to cost the same as or more than shooting units.
A hormagaunt for example costs more than a guardsman, but is easier to kill and it's only advantage is slightly faster running speed and initiative, which means they're pretty much worthless.
A bloodcrusher costs more points (nearly twice as many) than a space marine bike but dies more easily to small arms fire with T4 and a 5+ save, and can be instantly killed by things like krak missiles which are pretty ubiquitous and costs less to field than the bloodcrusher, so they're pretty crap unless you get them for free with summoning.
Chaos Land Raiders cost a very big chunk of points but unlike the Loyalist Land Raiders can't fight for shit and carry less models than the better loyalist variants.
Several editions ago (in 4th) assault was if anything overpowered, because they could consolidate out of winning one assault right into another without having to go through another shooting phase inbetween, meaning something like genestealers could rip enemies to pieces. You could also arrive from reserves by outflanking and assault the same turn meaning they could appear and immediately rip into backline units. The latter could also be done in 5th.
Since 6th took away the ability to assault from outflank a lot of units got shit all of a sudden, other units that had been suffering in 5th already ('gaunts and berzerkers for example) got no relief, overwatch compounded the problem, transport vehicles were made easier to kill by the hull points system, the changes to furious charge didn't help, assault grenades working on a model by model basis rather than unit basis also didn't help matters at all.
Granted most of these problems could be dealt with by making assault units cheaper than their shooting equivalents and giving most armies an open topped/assault ramp transport option that doesn't cost more than the unit it's transporting, but there does need to be more support for assault in the core rules. As it is the good assault units are the ones that ignore several game mechanics, like morale checks, being slowed by terrain and instant death, or have ridiculous statlines for their cost like thunderwolf cavalry.